1.list
list是一种可变的有序容器,每个元素都拥有自己的下标.列表使用[]定义.
(1)定义方法
x = [1,2,3] #第一种,使用[]
y = x #第二种,赋值
y = list({1,2,3}) #第三种,使用强制转换函数
(2)下标
下标从0开始,允许负数作为下标,最后一个元素的下标为-1,第一个元素的下标为-n,第i个元素的下标为(i-1)或-(n-i+1).
(3)切片
设x是一个列表,则
x[start:end:step]
为列表的一个切片,start为起始位置,包含,可以省略,end为结束位置,不包含,可以省略,step为步长,可以省略,默认为1.
三者都可以为负数.
三者都省略时为整个列表,反向遍历时可以省略start与end,步长设为-1:
(4)反向遍历
反向遍历有三种方法:
A.[::-1]
使用切片,像上面一样,步长设为-1
B.使用内置函数reversed()
reversed()会返回一个迭代器,想要获取里面的内容可以转换为list().
C.使用列表方法.reverse()
前两种方法不会改变列表,列表方法reverse()改变了列表.
(5)列表推导式
列表推导式可用于快速生成有规律性的列表,比如生成包含10个2的列表:
[2 for i in range(10)]
有点类似于把for循环的循环体提到前面.
(6)列表的常用函数
A.extend()
extend()类似于直接使用+,但是+不会改变列表本身,而extend()会改变列表本身.
B.append()
append()把参数作为一个元素直接追加到列表中.
C.insert()
insert需要两个参数,分别表示插入的下标与插入的值.
D.pop()
根据下标删除元素.
E.remove()
根据值删除元素,删除第一个出现的元素,就是说对于重复元素仅删除第一次出现的元素.
F.len()
列表长度,注意这个不是列表的方法.
G.sorted()与sort()
这两个都是排序的方法,sorted()不是列表的方法,把列表作为函数的参数传递,sort是列表的方法,会改变列表本身.
H.enumerate()
逐个显示对应的下标,返回的是一个迭代器.想要显示可以转换为列表.
I.zip()
列表的并行计算.
2.元组
元组是不可变的有序容器,用()表示.
(1)定义方法
x = (1,2,3,4,5) #第一种,使用()
y = x #第二种,使用赋值
x = tuple('kkkrrr') #第三种,使用tuple强制转换
x = 1,2,3,4,5 #第四种,实质上还是第一种,省略了圆括号
(2)特点
用逗号分隔的都是元组,是不可变对象,支持拆包式赋值.
(3)应用
交换两个变量:
函数的不定长参数:
def fun(arg1,*arg2):
print(arg1)
if arg2 != ():
if len(arg2) == 1:
print(arg2[0])
else:
print(arg2)
fun(1)
fun(2,3)
fun(4,5,6)