2023年7月9日 星期日
列表
在python中,列表就是或者java中的数组。
- 创建列表
Eg: [1,2,3,4,5]
列表切片
有时候我们可能不满足于一次只获取一个元素,那么可以使用列表切片来获取多个元素,使用方法如下:
第一个:冒号的左右分别是这个列表的左右区间,而第二个冒号后面是你想要的区间跨度。
增:
列表和字符串不一样,可以在列表中增删改查,使用append()来对列表实现增的功能,但是!!append方法每次只能添加一个元素,如果想要添加多个,请使用extend()。
Expend()方法的参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素的后面。
还可以使用insert()来从中间插入,
逗号前面是你想加在哪个位置,逗号后面是你想加的元素
删:
使用remove()来对列表进行删除
比如我们的heros列表中混进了一个灭霸,我们要把灭霸删➗去,
要注意的是1⃣️.如果列表中存在多个匹配的元素,那么它只会删除第一个,也就是说如果这个列表有多个灭霸,它只会删除下标最小的那个。2⃣️.如果指定的元素不存在,程序就会报错。
还可以使用pop(元素下标)方法来进行删除。可以用clear()方法来清空列表。
改:
还可以用sort()方法来让列表从小到大排序,使用reverse()来让列表从大到小排序。
查:
比如我们想知道列表中有多少个数字’2’,我们使用count()方法来实现,还可以查找某个元素的索引值,使用index()。如果有多个相同的元素,index会返回它找到的第一个下标值。index(x,start,end)。也就是我们要查找x,从start开始到end结束查找。还可以用copy()来复制列表。
列表的加法和乘法:
嵌套列表:
浅拷贝和深拷贝
X=[1,2,3]
y=x
这时y和x是访问的是同一个地址的列表,你对x做更改的话y也会随着变化,但如果是
x=[1,2,3]
y=x.copy( )
这时y和x访问的就不是同一个列表了,但是他们的内容一样,你对x更改,y列表并不会随之改变。
x=[1,2,3]
y=x[ : ]. (这个意思就是把x的列表所有的元素都拷贝给y)
⬆️以上都属于浅列表,如果包含嵌套列表的话,copy方法会有缺陷,要使用深拷贝。
首先导入 copy模块
import copy
x=[[1,2,3],[4,5,6],[7,8,9]]
y=copy.deepcopy(x)
此时对x改变时,y并不会改变。 等于是一个是复制表面,另一个是复制了源代码,两个的区别就是效率的不同。
列表推导式
如何让一个列表中的每一个数都乘2呢:
方法有两种:
列表推导式:【 expression for target in iterable】
因此可以使用列表推导式来更快的写出一个数组,即是
S = [[0] * 3 for I in range(3)]
列表推导式还可以添加筛选的if分句。[expression for target in itterable if condition ]