1 list
list
是一种可变的有序容器,每个元素都拥有自己的下标,列表使用[]
定义。
1.1 定义方法
x = [1,2,3] #第一种,使用[]
y = x #第二种,赋值
y = list({1,2,3}) #第三种,使用强制转换函数
1.2 下标
- 下标从0开始
- 允许负数作为下标,最后一个元素的下标为
-1
- 第一个元素的下标为
-n
,第i
个元素的下标为(i-1)
或-(n-i+1)
1.3 切片
设x是一个列表,则
x[start:end:step]
为列表的一个切片,start
为起始位置,包含,可以省略,end
为结束位置,不包含,可以省略,step
为步长,可以省略,默认为1。
三者都可以为负数。
三者都省略时为整个列表,反向遍历时可以省略start
与end
,步长设为-1
:
1.4 反向遍历
反向遍历有三种方法:
1.4.1 [::-1]
使用切片[::-1]
,像上面一样,步长设为-1
。
1.4.2 reversed()
也可以使用内置函数reversed()
,reversed()
会返回一个迭代器,想要获取里面的内容可以转换为list()
:
1.4.3 reverse()
也可以使用列表方法.reverse()
:
前两种方法不会改变列表,列表方法.reverse()
会改变列表。
1.5 列表推导式
列表推导式可用于快速生成有规律性的列表,比如生成包含10个2的列表:
[2 for i in range(10)]
有点类似于把for
循环的循环体提到前面。
1.6 列表的常用函数
1.6.1 extend()
extend()
类似于直接使用运算符+
,但是+
不会改变列表本身,而extend()
会改变列表本身。
1.6.2 append()
append()
把参数作为一个元素直接追加到列表中。
1.6.3 insert()
insert()
需要两个参数,分别表示插入的下标与插入的值。
1.6.4 pop()
根据下标删除元素。
1.6.5 remove()
根据值删除元素,删除第一个出现的元素,就是说对于重复元素仅删除第一次出现的元素。
1.6.6 len()
列表长度,注意这个不是列表的方法。
1.6.7 sorted()
与sort()
这两个都是排序的方法,sorted()
不是列表的方法,把列表作为函数的参数传递,sort
是列表的方法,会改变列表本身。
1.6.8 enumerate()
逐个显示对应的下标,返回的是一个迭代器,想要显示可以转换为列表。
1.6.9 zip()
列表的并行计算。
2 元组
元组是不可变的有序容器,用()
表示。
2.1 定义方法
x = (1,2,3,4,5) #第一种,使用()
y = x #第二种,使用赋值
x = tuple('kkkrrr') #第三种,使用tuple强制转换
x = 1,2,3,4,5 #第四种,实质上还是第一种,省略了圆括号
2.2 特点
用逗号分隔的都是元组,是不可变对象,支持拆包式赋值。
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)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。