Python第二课
新的一周,新的知识点:
wait wait wait,先来复习上周的内容
叮、前章回顾:
运算符 | 功能 |
---|---|
x+y | 算术加法,列表、元组、字符串的连接 |
x*y | 数值乘法,当列表、字符串、元组等类型变量与整数进行*运算时,对其内容进行重复 |
x/y | 真除法,结果为实数 |
x//y | 整除运算,结果为整数 |
x%y | 字符串格式化,对整数和浮点数计算余数 |
x in s存在性测试 | 如果x在序列s中,返回true,否则返回false |
x not in s | 如果x不在序列s中,返回true,否则返回false |
Bingo !开启新篇章
一、常用的内置函数
内置函数不需要导入任何模块即可直接使用。
操作 | 结果 |
---|---|
len(s) | 序列s的元素个数(序列长度) |
max(s)、min(s) | 序列s中的 最大值、最小值(s中数据元素类型需相同) |
s.count(x) | 序列s中x的个数 |
divmod(x,y) | 返回包含整商和余数的元组((x-x%y)/y,x%y) |
range([start]stop[,step]) | 返回具有惰性求值特点的range对象,其中包含左闭右开区间[start,stop)内以step为步长的整数 |
其中:1.在max与min中key参数可用来指定比较规则
如:
max(x,key=len)
x=['21','1234','9']
max(x)
#输出:9 #比较字符串的第一个数
2.range()函数中参数start默认为0,step默认为1。
如:
range(5)
list(range(5))
#输出:[0,1,2,3,4]
来个栗子:
用户输入一个三位自然数,计算并输出其百位、十位、个位上的数字。
1.使用map内置函数
x=input('请输入一个三位数:') #651
print(*map(int,x))
2.使用divmod内置函数
x=input('请输入一个三位数:') #651
x=input(x)
a,b=divmod(x,100)
b,c=divmod(b,10)
print(a,b,c)
结果都是
6 5 1
二、Python序列
序列是一块用来存放多个值得内存空间。常用的序列结构有列表、元组、字典、集合等。
其中字典和集合属于无序序列,列表、元组、字符串和可迭代对象属于有序序列;又字典、集合和列表属于可变序列,元组、字符串和可迭代对象属于不可变序列。
三、列表
3.1 列表的定义和特点
列表是Python的内置可变序列,是包含若干元素连续内存空间,当列表增加或删除元素是,列表对象自动进行内存的扩展和收缩,从而保证元素之间没有缝隙。并且在Python中,同一个列表中的元素的类型可以不相同,可以同时包含整数、实数、字符串等基本类型,也可以是元组、列表、字典、集合以及其他自定义类型的对象。
如:
[10,20,30,40]
['crunchy frog','ram bladder','lark vomit']
['spam',2.0,5,[10,20]]
3.2 列表对象常用方法
方法 | 说明 |
---|---|
append(x) | 将元素x添加至列表尾部 |
extend(iterable) | 将可迭代对象iterable中所有元素添加至列表尾部 |
insert(index,x) | 在列表指定位置index处添加元素x |
remove(x) | 在列表中删除首次出现的指定元素 |
pop([index]) | 删除并返回列表对象指定位置的元素,默认为最后一个元素 |
clear() | 删除列表中所有元素,但保留列表对象 |
index(x) | 返回第一个值为x的元素的下标,若不存在值为x的元素,则抛出异常 |
count(x) | 返回指定元素x在列表中的出现次数 |
reverse() | 对列表元素进行原地翻转 |
sort(key=None,reverse=False) | 对列表元素进行原地排序 |
copy() | 返回列表对象的浅复制 |
3.3.1 列表创建与删除
使用赋值运算符“=”直接将一个列表赋值给变量即可创建列表对象。
如:
a_list = ['a','b','example']
a_list = [] #创建空列表
也可以使用list()函数将元组、range对象、字符串或其他类型的可迭代对象类型的数据转换为列表。
如:
a_list = list((3,5,7,9,11))
list(range(1,10,2))
#输出:[1,3,5,7,9]
3.3.2 列表元素的增加
(1)使用+运算符来实现将元素添加到列表中的功能。
如:
aList = [3,4,5]
aList = aList + [7]
aList
#输出:[3,4,5,7]
(2)使用列表对象的append()方法,原地修改列表。
注:如果是通过下标来修改列表中元素的值或通过列表对象自身提供的方法来增加和删除元素时,列表对象在内存中的起始地址是不变的,仅仅是被改变值的元素地址发生变化。
如:
aList.append(8)
aLIst
#输出:[3,4,5,7,8]
(3)使用列表对象的extend()方法可以将另一个迭代对象的所有元素添加至该列表对象尾部。
a = [1,2,3]
a,extend([7,8,9])
a
#输出:[1,2,3,7,8,9]
(4)使用列表对象的insert()方法将元素添加至列表的指定位置。
如:
aList.insert(3,6)
aList
#输出:[3,4,5,6,7,8]
(5)使用乘法来扩展列表对象,将列表与整数相乘
如:
aList = [1,2,3]
aList * 3
#输出:[1,2,3,1,2,3,1,2,3]
3.3.3 列表元素的删除
(1)使用del命令删除列表中的指定位置上的元素
如:
a_list = [3,5,7,9,11]
del a_list[1]
a_list
#输出:[3,7,9,11]
(2)使用列表的pop()方法删除并返回指定(默认为最后一个)位置上的元素,如果给出的索引超出列表的范围,则抛出异常
如:
a_list = list((3,5,7,9,11))
a_list.pop()
a_list
#输出:[3,5,7,9]
a_list,pop(1)
a_list
#输出:[3,7,9]
(3)使用列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。
如:
a_list = [3,5,7,9,7,11]
a_list.remove(7)
a_list
#输出:[3,5,9,7,11]
3.3.4 切片操作
切片是Python中有序序列的重要操作之一,适用于列表、元组,字符串、range等类型。其形式是[start:stop:step],第一个数字表示切片开始(默认为0),第二个数字表示切片截止(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号。
可以使用切片来截取列表中的任何部分,得到一个新列表,也可以通过切片来修改和删除列表中的部分元素,甚至可以通过切片操作为列表对象增加元素。
如:
aList = [3,4,5,6,7,9,11,13,15,17]
aList[::-1]
#输出:[17,15,13,11,9,7,6,5,4,3]
注意:切片操作不会因为下标越界而抛出异常。
如:
aList[0:100:1]
#输出:[3,4,5,6,7,9,11,13,15,17]
四、总结
新学了列表等知识点,在原有知识的基础上增加更多用法。下周又是勤劳(并不是)的灿灿灿继续更新!