第3章 组合数据类型
1 列表(list)¶
列表是可变有序列表。列表的长度和内容是可变的,可自由对列表中的数据项进行增加、删除或替换。列表元素类型可以不同。列表用中括号([ ])表示,也可以通过 list() 函数将元组或字符串转化成列表,直接使用 list() 会返回一个空列表。
列表类型常用的函数或方法:
| 函数或方法 | 描述 |
|---|---|
| list[i] = x | 替换列表 list 第 i 项数据为 x |
| list[i: j] = lt | 用列表 lt 替换列表 list 第 i 项到第 j-1 项数据 |
| list[i: j: k] = lt | 用列表替换列表 list 第 i 项到第 j-1 项以 k 为步长的数据 |
| del list[i: j] | 删除列表 list 第 i 项到第 j-1 项数据 |
| del list[i: j: k] | 删除列表 list 第 i 项到第 j-1 项以 k 为步长的数据 |
| list += lt 或 list.extend(lt) | 将列表 lt 添加到列表 list |
| list * n | 更新列表 list,其元素重复 n 次 |
| list.append(x) | 在列表 list 最后添加元素 x |
| list.clear() | 删除列表 list 的所有元素 |
| list.copy() | 复制列表 list |
| list.count(x) | 返回元素 x 在列表 list 中出现的次数 |
| list.insert(i, x) | 在列表 list 的第 i 位置插入元素 x |
| list.pop([i]) | 将列表 list 的第 i 项元素取出,并删除该元素,默认最后一个元素 |
| list.remove(x) | 将列表 list 出现的第一个元素 x 删除 |
| list.reverse() | 将列表 list 的元素反转 |
| list.sort([reverse=True]) | 对列表进行降序排序,默认为升序排序 |
2 元组(tuple)¶
与列表不同的是,元组属于不可变序列。元组一旦被创建,用任何方法都不可以修改其元素值。元组的定义形式与列表类似,区别在于元组使用小括号表示(( )),也可以使用 tuple() 将列表或字符串转化成元组。对元组而言,只能使用 del 命令删除整个元组对象,而不能只删除元组中的部分元素,因为元组属于不可变序列。
3 集合(set)¶
集合是无序可变序列,没有索引和位置,集合中的元素不可重复。集合的打印效果和定义的顺序并不一定一致。集合使用大括号({ })表示,也可以使用 set() 将任何组合数据类型转化成一个无重复且排序任意的集合。
3.1 集合类型的操作符:¶
| 操作符 | 描述 |
|---|---|
| S & T 或 S.intersection(T) | 交集 |
| S &= T 或 S.intersection_update(T) | 计算集合 S 和集合 T 的交集并更新到集合 S |
| S | T 或 S.union(T) | 并集 |
| S |= T 或 S.update(T) | 计算集合 S 和集合 T 的并集并更新到集合 S |
| S ^ T 或 S.symmetric_difference(T) | 补集 |
| S ^= T 或 S.symmetric_difference_update(T) | 计算集合 S 和集合 T 的补集并更新到集合 S |
| S - T 或 S.difference(T) | 差集 |
| S -= T 或 S.difference_update(T) | 计算集合 S 和集合 T 的差集并更新到集合 S |
| S <= T 或 S.issubset(T) | 如果集合 S 和集合 T 相同或 S 是 T的子集,返回 True,否则返回 False |
| S >= T 或 S.issubset(T) | 如果集合 S 和集合 T 相同或 S 是 T的超集,返回 True,否则返回 False |
3.2 集合类型的操作函数或方法:¶
| 操作函数或方法 | 描述 |
|---|---|
| S.add(x) | 把元素 x 增加到集合 S |
| S.clear() | 清空集合 S |
| S.copy() | 复制集合 S |
| S.pop | 随机返回集合 S 的一个元素,并删除该元素 |
| S.discard(x) | 如果 x 在集合 S 中,移除该元素,不在则不报错 |
| S.remove(x) | 如果 x 在集合 S 中,移除该元素,不在则报KeyError错 |
| S.isdisjoint(T) | 如果集合 S 和集合 T 没有相同元素,则返回 True |
4 字典(dict)¶
字典是“键-值”的无序可变序列。字典中的“键”可以是 Python 中任意不可变数据,例如数字、字符串和元组等,但不能使用列表、集合和字典等,因为这些类型的对象是可变的。另外,字典中的“键”不允许重复,而“值”是可以重复的。可以使用 dict() 函数创建字典。定义如下:
python
d = {"键1": "值1", "键2": "值2"}
字典类型和函数和方法:
| 函数或方法 | 描述 |
|---|---|
| d.keys() | 返回所有键 |
| d.values() | 返回所有值 |
| d.items() | 返回所有键值对 |
| d.get(key, default) | 键存在则返回相应值,否则返回默认值 |
| d.pop(key, default) | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
| d.popitem() | 随机返回一个键值对,以元组形式返回(key, value),同时删除键值对 |
| d.clear() | 清空字典所有键值对 |
| del d[key] | 删除字典某一键值对 |