特征對比
下面是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}) |