1.定义
[]内以逗号分割,按照索引,存放各种数据类型(字符串,数字,列表),每个位置代表一个元素。
2.特性
2.1 可以存放多个值
2.2 按照从左到右的顺序定义列表,下标从0开始顺序访问,有序
2.3 可修改指定索引位置的值,可变(与str相反,str是不可修改的)
3.列表的常用操作
3.1 列表的增加
3.1.1 append()
追加,数据会追加到尾部
>>> names = ['小明','Mr.wang',22]
>>> names.append('小张')
>>> names
['小明', 'Mr.wang', 22, '小张']
3.1.2 insert()
根据索引插入,可插入任何位置(插到索引的位置)
>>> names.insert(1,'mekio')
>>> names
['小明', 'mekio', 'Mr.wang', 22, '小张']
>>> names.insert(5,'xiye')
>>> names
['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye']
3.1.3 extend()
合并操作,把一个列表合并到另一个列表中
>>> names
['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye']
>>> rng = ['uzi','xiaohu']
>>> names.extend(rng)
>>> names
['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye', 'uzi', 'xiaohu']
3.2 列表删除
3.2.1 根据索引直接删除
>>> names
['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye', 'uzi', 'xiaohu']
>>> del names[4]
>>> names
['小明', 'mekio', 'Mr.wang', 22, 'xiye', 'uzi', 'xiaohu']
>>> del names[0]
>>> names
['mekio', 'Mr.wang', 22, 'xiye', 'uzi', 'xiaohu']
3.2.2 pop(index)
删除索引处的元素并且返回被删除的元素,如果没有索引则默认删除最后一个元素
>>> names
['mekio', 'Mr.wang', 22, 'xiye', 'uzi', 'xiaohu']
>>> names.pop()
'xiaohu'
>>> names.pop(1)
'Mr.wang'
3.2.3 remove()
根据列表元素删除,删除在列表中找到的第一个目标值
>>> names
['mekio', 22, 'xiye', 'uzi', 'mekio']
>>> names.remove('mekio')
>>> names
[22, 'xiye', 'uzi', 'mekio']
3.2.4 clear()
清空列表
>>> rng
['uzi', 'xiaohu']
>>> rng.clear()
>>> rng
[]
3.3 列表修改
3.3.1 根据索引修改
>>> names
[22, 'xiye', 'uzi', 'mekio']
>>> names[0]='letme'
>>> names
['letme', 'xiye', 'uzi', 'mekio']
>>> names[-1] = 'mlxg' # -1为倒数第一个元素的索引
>>> names
['letme', 'xiye', 'uzi', 'mlxg']
在不知道某一个元素在哪个位置的修改方法
1.判断该元素是否在列表中 target in list:
2.如果在,取出索引 index = list.index(target)
3.修改 list[index] = new_target
3.4 列表查找
3.4.1 index()
返回查找元素的索引
>>> names
['letme', 'xiye', 'uzi', 'mlxg']
>>> names.index('xiye')
1
>>> names.index('mlxg')
3
3.4.2 count()
返回查找元素在列表中个数
>>> names
['letme', 'xiye', 'uzi', 'mlxg', 'letme']
>>> names.count('uzi')
1
>>> names.count('letme')
2
3.5 切片
切片操作是顾头不顾尾
3.5.1
>>> names
['letme', 'xiye', 'uzi', 'mlxg', 'letme']
>>> names[0:3]
['letme', 'xiye', 'uzi']
切片操作时,当起始参数为0可以省略不写,即上述操作也可写为
>>> names[:3]
['letme', 'xiye', 'uzi']
3.5.2 取最后的两个值
>>> names[3:5] # 超标写法,即索引超出
['mlxg', 'letme']
>>> names[3:] # 省略写法,即从索引开始,取到最后
['mlxg', 'letme']
3.5.3 倒着切
names[-3:-1] # 取出倒数第三个和倒数第二个
['uzi', 'mlxg']
>>> names[-3:] # 取出倒数后三个
['uzi', 'mlxg', 'letme']
3.5.4 根据步长跳着切
>>> names
['letme', 'xiye', 'uzi', 'mlxg', 'letme']
>>> names[::2] # 从第一个切到最后一个,步长为2,全部省略即为从开始切到最后,且包括开始和最后的元素
['letme', 'uzi', 'letme']
3.6 排序 sort()
根据字符编码排序
>>> num = [2,4,7,4,5,0,1,8]
>>> num.sort()
>>> num
[0, 1, 2, 4, 4, 5, 7, 8]
3.7 反转 reverse()
>>> num
[0, 1, 2, 4, 4, 5, 7, 8]
>>> num.reverse()
>>> num
[8, 7, 5, 4, 4, 2, 1, 0]
>>> names
['letme', 'xiye', 'uzi', 'mlxg', 'letme']
>>> names.reverse()
>>> names
['letme', 'mlxg', 'uzi', 'xiye', 'letme']
3.8 循环列表
>>> for i in names:
print(i)
letme
mlxg
uzi
xiye
letme