5 、列表
一、基础🧀
1、创建🧀
- 列表可以含有各种数据类型的元素
2、内建函数🧀
3、比较🧀
4、遍历🧀
遍历中修改列表
在 Python 中,用 for item in a
遍历列表时,其实是按 索引顺序访问每个元素的。而当你在循环中使用 a.remove(item)
删除元素时,列表的结构会立刻改变,索引顺序就乱了,导致跳过了一些元素。
5、排序🧀
- 破坏性的⚡
- 非破坏性的
操作类型 | 破坏性(修改原列表) | 非破坏性(生成新列表) |
---|---|---|
赋值 | b = a | b = a[:] / copy.copy(a) / list(a) |
添加元素 | a.append(x) / a.extend([...]) / a += [...] | a = a + [...] |
删除元素 | a.pop() / a.pop(i) / a.remove(x) | a = a[:i] + a[i+1:] |
插入元素 | a.insert(i, x) | a = a[:i] + [x] + a[i:] |
排序 | a.sort() | a = sorted(a) |
反转 | a.reverse() | a = list(reversed(a)) |
6、常用方法🧀
方法 | 说明 |
---|---|
list.append(obj) | 在末尾添加新的对象 |
list.count(obj) | 统计某个元素出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) | 找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) | 将对象插入指定位置 |
list.pop([index=-1]) | 移除一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) | 移除某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort(key=None, reverse=False) | 排序,key 控制排序依据,reverse 控制顺序 |
list.clear() | 清空列表 |
list.copy() | 复制列表,创建一个新的列表对象 |
※ 元组🧀
- 元组和列表类似,只是不能修改
- 用
()
包裹
二、进阶🧀
1、列表推导式🧀
expression
: 结果表达式(可以是任意计算,如i*100
)item
: 遍历变量iterable
: 任何可迭代对象(如range
,list
,string
)if condition
: 可选过滤条件
2、字符串🔁列表🧀
- 字符串 → 列表
- 列表 → 字符串
三、二维列表🧀
1、创建🧀
Failure
使用 *
创建二维数组(产生浅拷贝)
- 这个写法看起来像是创建了
rows
个不同行。 - 实际上,每一行都指向同一个内存对象,是同一行的多个别名(shallow copy)。
- 使用
append()
方法
- 使用推导式
- 封装成函数