列表格式
列表名 = [] (元素可以重复)
Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。
>>> mix = [1, ‘小甲鱼’, 3.14, [1, 2, 3]]
普通列表
列表中的元素类型一致。
混合列表
列表中有多种类型的元素。
空列表
向列表中添加元素
append()
只能添加一个元素在列表末尾.
extend()
可一次性添加多个元素,但必须以列表的形式添加。加在列表末尾。
insert()
将一个元素添加到某个位置。
从列表中获取元素
根据索引获取元素,索引值从0开始。(类似于数组)
改变列表中的元素
从列表删除元素
remove()
删除具体的某一个元素。
del
删除第几个元素或整个列表。
pop()
删除并返回列表的最后一个元素。
列表分片
利用索引值可以每次得到一个元素。
如果想每次得到多个元素,就得用分片。
**格式:**member[a:b] a为起始位置的索引,b为结束位置的索引,但内容不包含结束位置。
在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长。
在普通的分片操作中,步长默认设置为1,表示逐个遍历元素。其实我们可以人为调整步长以达到不可告人的秘密。
>>>list1 = [1, 3, 2, 9, 7, 8]
>>>list1[:6:2]
[1, 2, 7]
“简洁”分片操作在这里有效:
>>> list1[::2]
[1, 2, 7]
步长不能为0,要不就走不动了:
>>> list1[::0]
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
list1[::0]
ValueError: slice step cannot be zero
步长可以是负数,改变方向(从尾部开始向左走):
>>> list1[::-2]
[8, 9, 3]
关于“拷贝”的补充
将一个列表直接赋值给另一个变量,相当于一个列表又多了个名字,不管那个改变,另一个也都改变。
将一个列表以分片的形式拷贝给另一个变量,相当于又创造了一个列表,变成了两个列表,不管谁发生变化,都不会影响另一个。
列表的一些常用操作符
比较操作符
列表只比较第一个元素,后边的都不看。
逻辑操作符
连接操作符
重复操作符
成员关系操作符
列表的内置函数
count()函数
计算某一元素在列表中有多少次。
index()
返回参数在列表中的位置。
如果列表中有重复的元素,则可返回某一范围里好几个该元素中第一个的位置。
reverse()
将列表前后颠倒。
sort()
将列表中的元素从小到大排序。
从大到小排序。
copy()
作用和分片拷贝一样。
clear()
清空列表的元素,但要注意,清空完后列表仍然还在哦,只是变成一个空列表。
列表推导式
也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:[有关A的表达式 for A in B]
相当于
list1 = []
for x in range(10):
list1.append(x**2)