在 Python 中,你可以向一个列表(list)中添加字典(dict),以下是几种常见的方法:

方法 1:使用 append() 添加单个字典
append() 会在列表末尾添加一个字典。
my_list = []
my_dict = {"name": "Alice", "age": 25}
my_list.append(my_dict)
print(my_list)
# 输出: [{'name': 'Alice', 'age': 25}]
方法 2:使用 extend() 添加多个字典
extend() 会将另一个列表(包含多个字典)的所有元素追加到当前列表。
my_list = [{"name": "Bob", "age": 30}]
new_dicts = [
{"name": "Charlie", "age": 35},
{"name": "David", "age": 40}
]
my_list.extend(new_dicts)
print(my_list)
# 输出: [
# {'name': 'Bob', 'age': 30},
# {'name': 'Charlie', 'age': 35},
# {'name': 'David', 'age': 40}
# ]
方法 3:使用 insert() 在指定位置插入字典
insert(index, dict) 可以在列表的指定位置插入字典。
my_list = [{"name": "Eve", "age": 22}]
new_dict = {"name": "Frank", "age": 28}
my_list.insert(0, new_dict) # 在索引 0 的位置插入
print(my_list)
# 输出: [{'name': 'Frank', 'age': 28}, {'name': 'Eve', 'age': 22}]
方法 4:直接使用 合并列表
通过 运算符可以合并两个列表(包含字典)。
list1 = [{"name": "Grace", "age": 27}]
list2 = [{"name": "Helen", "age": 32}]
combined_list = list1 + list2
print(combined_list)
# 输出: [
# {'name': 'Grace', 'age': 27},
# {'name': 'Helen', 'age': 32}
# ]
方法 5:使用列表推导式动态生成字典列表
如果需要根据条件或循环生成字典并添加到列表,可以使用列表推导式。
numbers = [1, 2, 3]
dict_list = [{"num": n, "square": n ** 2} for n in numbers]
print(dict_list)
# 输出: [
# {'num': 1, 'square': 1},
# {'num': 2, 'square': 4},
# {'num': 3, 'square': 9}
# ]
注意事项
-
引用问题:如果直接修改已添加到列表的字典,会影响列表中的内容(因为字典是可变对象)。
my_list = [] my_dict = {"name": "Ivy"} my_list.append(my_dict) my_dict["age"] = 30 # 修改字典会影响列表中的元素 print(my_list) # 输出: [{'name': 'Ivy', 'age': 30}] -
深拷贝:如果需要独立添加字典副本,可以使用
copy.deepcopy():import copy my_list = [] original_dict = {"name": "Jack"} my_list.append(copy.deepcopy(original_dict)) # 添加副本
- 单个字典 →
append() - 多个字典 →
extend()或 - 指定位置插入 →
insert() - 动态生成 → 列表推导式
根据需求选择合适的方法即可!
