特征对比
下面是Python中列表、元组、集合和字典的特征对比表格:
特征 列表 (List) 元组 (Tuple) 集合 (Set) 字典 (Dictionary) 定义符号 [ ]
( )
{ }
{ }
可变性 可变 不可变 可变 可变 有序性 有序 有序 无序 无序 元素访问 通过索引访问,索引从0开始 通过索引访问,索引从0开始 不支持索引访问 通过键访问 元素类型 可以包含任意类型的元素 可以包含任意类型的元素 可以包含任意类型的元素 键必须是不可变类型,值可以是任意类型 声明示例 my_list = [1, 'apple', True]
my_tuple = (1, 'apple', True)
my_set = {1, 'apple', True}
my_dict = {'name': 'Alice', 'age': 30}
可变操作 添加、删除、修改元素 不支持添加、删除、修改元素 添加、删除元素 添加、删除、修改键值对
说明:
可变性 :列表、集合和字典是可变的,可以通过增删改操作来修改其内容;元组是不可变的,一旦创建后不能被修改。有序性 :列表和元组是有序的,元素按照插入顺序排列;集合和字典是无序的,元素没有固定顺序。元素访问 :列表和元组可以通过索引访问元素;集合不支持索引访问,只能通过迭代或特定方法访问元素;字典通过键来访问对应的值。元素类型 :列表、元组、集合和字典都可以包含任意类型的元素;字典中的键必须是不可变类型,而值可以是任意类型。声明示例 :各种数据结构的声明方式和示例。可变操作 :列表可以进行添加、删除、修改等操作;元组不能进行任何修改操作;集合可以进行添加和删除元素的操作;字典可以进行添加、删除和修改。
常用方法
列表 (List)
方法 描述 参数说明 使用示例 append(x)
在列表末尾添加元素 x
。 x
:要添加的元素my_list.append(10)
extend(iterable)
将可迭代对象 iterable
的元素添加到列表末尾。 iterable
:一个可迭代对象,如列表、元组等my_list.extend([20, 30])
insert(i, x)
在索引 i
处插入元素 x
。 i
:要插入的索引位置; x
:要插入的元素my_list.insert(1, 'apple')
remove(x)
移除列表中第一个值为 x
的元素。 x
:要移除的元素my_list.remove('apple')
pop([i])
移除并返回索引为 i
处的元素。如果未指定索引,默认移除并返回最后一个元素。 i
:可选的索引位置my_list.pop()
或 my_list.pop(0)
clear()
移除列表中的所有元素。 无参数 my_list.clear()
index(x)
返回第一个值为 x
的元素的索引。 x
:要查找的元素my_list.index('apple')
count(x)
返回值为 x
的元素在列表中出现的次数。 x
:要计数的元素my_list.count('apple')
sort(key=None, reverse=False)
对列表进行排序。 key
:排序的规则函数; reverse
:是否逆序排序my_list.sort(reverse=True)
reverse()
反转列表中的元素。 无参数 my_list.reverse()
copy()
返回列表的浅拷贝。 无参数 new_list = my_list.copy()
元组 (Tuple)
元组是不可变的,因此没有修改元素的方法。
方法 描述 参数说明 使用示例 count(x)
返回值为 x
的元素在元组中出现的次数。 x
:要计数的元素my_tuple.count('apple')
index(x)
返回第一个值为 x
的元素的索引。 x
:要查找的元素my_tuple.index('apple')
集合 (Set)
方法 描述 参数说明 使用示例 add(x)
向集合中添加元素 x
。 x
:要添加的元素my_set.add(10)
update(iterable)
将可迭代对象 iterable
的元素添加到集合中。 iterable
:一个可迭代对象,如列表、元组等my_set.update([20, 30])
remove(x)
移除集合中的元素 x
,如果不存在会抛出 KeyError。 x
:要移除的元素my_set.remove('apple')
discard(x)
移除集合中的元素 x
,如果不存在不会抛出异常。 x
:要移除的元素my_set.discard('apple')
pop()
随机移除并返回集合中的一个元素。 无参数 my_set.pop()
clear()
移除集合中的所有元素。 无参数 my_set.clear()
union(*others)
返回一个新集合,包含所有集合和可迭代对象 others
中的元素。 others
:一个或多个集合或可迭代对象new_set = my_set.union(other_set)
intersection(*others)
返回一个新集合,包含所有集合和可迭代对象 others
中共同的元素。 others
:一个或多个集合或可迭代对象new_set = my_set.intersection(other_set)
difference(*others)
返回一个新集合,包含所有在当前集合中但不在可迭代对象 others
中的元素。 others
:一个或多个集合或可迭代对象new_set = my_set.difference(other_set)
symmetric_difference(other)
返回一个新集合,包含所有在当前集合或 other
中,但不同时在两者中的元素。 other
:另一个集合或可迭代对象new_set = my_set.symmetric_difference(other_set)
字典 (Dictionary)
方法 描述 参数说明 使用示例 clear()
移除字典中的所有元素。 无参数 my_dict.clear()
copy()
返回字典的浅拷贝。 无参数 new_dict = my_dict.copy()
fromkeys(keys, value=None)
创建一个新字典,使用 keys
中的元素作为键,value
作为值(默认为 None
)。 keys
:作为键的可迭代对象; value
:作为值的默认值new_dict = dict.fromkeys(['name', 'age'], 'unknown')
get(key, default=None)
返回键 key
对应的值,如果键不存在则返回 default
。 key
:要获取值的键; default
:键不存在时返回的默认值value = my_dict.get('name', 'Unknown')
items()
返回字典的键值对视图。 无参数 items_view = my_dict.items()
keys()
返回字典的键视图。 无参数 keys_view = my_dict.keys()
values()
返回字典的值视图。 无参数 values_view = my_dict.values()
pop(key, default=None)
移除并返回键为 key
的元素,如果键不存在则返回 default
。 key
:要移除的键; default
:键不存在时返回的默认值value = my_dict.pop('name', 'Unknown')
popitem()
移除并返回任意一个键值对元组。 无参数 key_value_pair = my_dict.popitem()
setdefault(key, default=None)
返回键 key
对应的值,如果键不存在则将 default
设为该键的值并返回。 key
:要获取值的键; default
:键不存在时设置的默认值value = my_dict.setdefault('name', 'Unknown')
update([other])
更新字典,将另一个字典或可迭代对象 other
的键值对添加到当前字典中。 other
:一个字典或可迭代对象my_dict.update({'name': 'Alice', 'age': 30})