7.6 KiB
7.6 KiB
数据容器操作指南
列表(List)
特点
- 可变数据类型
- 有序
- 元素可重复
- 可以存储不同类型的元素
增加操作
# append() 方法在列表的末尾添加一个元素。
list.append(obj)
# insert() 方法将指定对象插入到指定索引处。
list.insert(index, obj)
# extend() 方法用新列表扩展原列表。
list1.extend(list2)
删除操作
# pop() 方法移除列表中指定索引位置的元素,默认为最后一个元素,并返回该元素。
list.pop([index=-1])
# remove() 方法移除列表中第一个匹配的指定值的元素。
list.remove(obj)
# clear() 方法用于清空列表。
list.clear()
# del 关键字可以删除列表或列表中的元素。
del list[index]
del list
修改操作
# 直接通过索引修改元素。
list[index] = new_value
# 使用切片修改多个元素。
list[start:end] = iterable
查询操作
# index() 方法返回指定元素在列表中的第一个索引位置。
list.index(obj)
# count() 方法统计某个元素在列表中出现的次数。
list.count(obj)
# in 运算符检查列表是否包含指定元素。
element in list
# len() 函数获取列表长度。
len(list)
# 使用索引访问元素。
list[index]
元组(Tuple)
特点
- 不可变数据类型
- 有序
- 元素不可变
- 可以存储不同类型的元素
增加/删除/修改操作
元组是不可变的,所以不支持增加、删除和修改操作。
查询操作
# index() 方法返回指定元素在元组中的第一个索引位置。
tuple.index(obj)
# count() 方法统计某个元素在元组中出现的次数。
tuple.count(obj)
# in 运算符检查元组是否包含指定元素。
element in tuple
# len() 函数获取元组长度。
len(tuple)
# 使用索引访问元素。
tuple[index]
集合(Set)
特点
- 可变数据类型
- 无序
- 元素唯一
- 不允许重复
增加操作
# add() 方法向集合中添加一个元素。
set.add(obj)
# update() 方法用其他可迭代对象更新集合。
set.update(iterable)
删除操作
# remove() 方法从集合中移除指定的元素。如果元素不存在,则引发 KeyError。
set.remove(obj)
# discard() 方法从集合中移除指定的元素。如果元素不存在,则不会引发异常。
set.discard(obj)
# pop() 方法随机移除并返回集合中的一个元素。
set.pop()
# clear() 方法清空集合。
set.clear()
# del 关键字可以删除集合。
del set
修改操作
集合没有直接的修改操作,因为元素是唯一的且无序。
查询操作
# in 运算符检查集合是否包含指定元素。
element in set
# len() 函数获取集合大小。
len(set)
字典(Dictionary)
特点
- 可变数据类型
- 无序(Python 3.7之前)
- 键必须是不可变类型且唯一
- 值可以是任意类型
增加操作
# 直接赋值添加键值对。
dict[key] = value
# update() 方法用另一个字典或可迭代对象更新当前字典。
dict.update(other_dict)
删除操作
# pop() 方法移除指定键并返回其对应的值。如果键不存在,则返回默认值或引发 KeyError。
dict.pop(key[, default])
# popitem() 方法移除并返回字典中的任意一个键值对。
dict.popitem()
# clear() 方法清空字典。
dict.clear()
# del 关键字可以删除字典或字典中的键值对。
del dict[key]
del dict
修改操作
# 直接通过键修改值。
dict[key] = new_value
查询操作
# get() 方法返回指定键的值,如果键不存在则返回默认值。
dict.get(key[, default])
# keys() 方法返回字典的所有键。
dict.keys()
# values() 方法返回字典的所有值。
dict.values()
# items() 方法返回字典的键值对元组列表。
dict.items()
# in 运算符检查字典是否包含指定键。
key in dict
# len() 函数获取字典的大小。
len(dict)
# 使用键访问值。
dict[key]
通用操作
in运算符:适用于所有数据容器,用于检查是否存在某个元素。len()函数:适用于所有数据容器,用于获取容器的大小。
特有操作
- 列表特有:
append(),insert(),extend(),pop(),remove(),clear(), 索引赋值等。 - 元组特有:由于不可变性,没有增加、删除、修改操作。
- 集合特有:
add(),update(),remove(),discard(),pop(),clear()等,主要用于处理唯一元素。 - 字典特有:
get(),keys(),values(),items(),pop(),popitem()等,主要用于处理键值对。
数据容器之间的相互转换
列表(List) 与其他类型转换
列表转元组
# 使用 tuple() 函数将列表转换为元组。
tuple_from_list = tuple(list_example)
列表转集合
# 使用 set() 函数将列表转换为集合,这会去除重复元素。
set_from_list = set(list_example)
列表转字典
# 列表包含键值对元组时,可以使用 dict() 函数转换为字典。
dict_from_list = dict([(key1, value1), (key2, value2)])
元组(Tuple) 与其他类型转换
元组转列表
# 使用 list() 函数将元组转换为列表。
list_from_tuple = list(tuple_example)
元组转集合
# 使用 set() 函数将元组转换为集合,这会去除重复元素。
set_from_tuple = set(tuple_example)
元组转字典
# 元组包含键值对元组时,可以使用 dict() 函数转换为字典。
dict_from_tuple = dict(tuple_example)
集合(Set) 与其他类型转换
集合转列表
# 使用 list() 函数将集合转换为列表。结果的顺序是随机的。
list_from_set = list(set_example)
集合转元组
# 使用 tuple() 函数将集合转换为元组。结果的顺序是随机的。
tuple_from_set = tuple(set_example)
集合转字典
# 集合不能直接转换为字典,除非每个元素是一个键值对元组。
dict_from_set = dict((element for element in set_example if isinstance(element, tuple)))
字典(Dictionary) 与其他类型转换
字典转列表
# 使用 list() 函数将字典的键、值或项转换为列表。
list_from_dict_keys = list(dict_example.keys())
list_from_dict_values = list(dict_example.values())
list_from_dict_items = list(dict_example.items())
字典转元组
# 使用 tuple() 函数将字典的键、值或项转换为元组。
tuple_from_dict_keys = tuple(dict_example.keys())
tuple_from_dict_values = tuple(dict_example.values())
tuple_from_dict_items = tuple(dict_example.items())
字典转集合
# 使用 set() 函数将字典的键、值或项转换为集合。
set_from_dict_keys = set(dict_example.keys())
set_from_dict_values = set(dict_example.values())
set_from_dict_items = set(dict_example.items())
总结
- 列表:可以转换为其他所有数据容器类型。
- 元组:可以转换为其他所有数据容器类型。
- 集合:可以转换为列表、元组和字典(需要特殊条件)。
- 字典:可以转换为列表、元组和集合。
此部分补充了Python中各种数据容器之间的相互转换方法,帮助理解它们如何在不同场景下灵活应用。
总结
- 列表:适合需要频繁增删改查的场景。
- 元组:适合存储不变的数据。
- 集合:适合需要确保元素唯一性的场景。
- 字典:适合需要快速查找和关联数据的场景。
此文档提供了 Python 中四种主要数据容器的基本操作及其特点,帮助理解它们各自的用途和限制。