Python容器篇 2 -- 列表
列表
list = [item1, item2, ...]
-
如何定义空列表
1. em_list = list() 2. em_list = []
-
如何遍历一个列表
# for循环
for i in alist:
print(i)
# while循环
i = 0
while i < len(alist):
print(alist[i])
i += 1
和字符串一样, 列表既支持下标/索引, 同时也支持切片
从 增删改查 4个角度梳理列表常用的操作方法
修改元素
- 列表名[下标] = 新的元素值
添加元素
-
列表名.append(元素值)
- 追加到列表的尾部
-
列表名.insert(index, 元素值)
- 可以在列表的任意位置插入
- index代表要插入的下标位置
-
列表名.extend(可迭代对象)
- 把可迭代对象遍历出来后, 一个一个放在列表尾部
append, insert, extend 这些函数都会直接操作原列表, 而且函数的返回值为 None
查找元素
和字符串不同, 列表不存在find方法 (字符串独占)
- 列表名.index(元素值)
- 返回元素所在位置的下标
- 列表名.count(元素值)
- 统计同一个元素出现的总次数, 返回出现次数
- 元素 in/not in 列表名
- 判断元素在不在列表中
- 返回布尔值 True/False
删除元素
-
列表名.remove(元素)
- 根据元素值删除
- 删除不存在的数据时, 会直接报错
- 返回值 None
-
del 列表名[下标]
- 根据下标删除
- 后边的元素会自动向前移动
-
列表名.pop(下标)
- 根据下标删除
-
列表名.pop()
- 默认删除列表最后一个元素
- 会将被删除的元素返回出来
- 需要从列表中取数据, 同时缩短列表的情况下使用
remove, del, pop 这三种方法都是会直接操作原列表, remove返回None, pop返回被删除的元素值
列表排序
- 直接操作原列表
- 升序排序 list.sort()
- 降序排序 list.sort(reverse=True)
- 不修改原列表, 而是返回一个新列表
- 函数 sorted(list)
列表逆置(反转)
注意: 反转与大小排序无关, 只是单纯的倒过来
- 直接操作原列表
- list.reverse()
- 不修改原列表, 而是返回一个新的列表
- list[::-1] 用上了切片 步长 -1
列表嵌套
列表中有的的元素还是列表
嵌套的外层还是按照列表的正常操作去做, 而内层则需要双重下标才能访问的到
列表 list = [..., alist, ...] 的第i个元素是 alist
那么就需要用 list[i][j] 去访问 alist的第j个元素