fromkeys()用于创建新字典,以指定键和统一值初始化,默认值为None;若值为可变类型如列表,所有键共享同一对象,修改一个会影晌其他,需用字典推导式避免。

fromkeys() 是 Python 字典中的一个类方法,用于创建一个新的字典,并使用指定的键和相同的值初始化。这个方法不会修改原字典,而是返回一个新的字典对象。
基本语法
dict.fromkeys(seq, value)
参数说明:- seq:包含键的可迭代对象(如列表、元组等)
- value:可选参数,作为所有键对应的初始值,默认为 None
简单使用示例
创建一个新字典,键来自列表,值设为默认的 None:
keys = ['name', 'age', 'city']new_dict = dict.fromkeys(keys)
print(new_dict) # 输出:{'name': None, 'age': None, 'city': None}
指定统一的初始值:
立即学习“Python免费学习笔记(深入)”;
keys = ['x', 'y', 'z']new_dict = dict.fromkeys(keys, 0)
print(new_dict) # 输出:{'x': 0, 'y': 0, 'z': 0}
注意事项与常见问题
所有键共享同一个值对象,如果值是可变类型(如列表),需特别小心:
keys = ['a', 'b', 'c']new_dict = dict.fromkeys(keys, [])
new_dict['a'].append(1)
print(new_dict) # 输出:{'a': [1], 'b': [1], 'c': [1]}
可以看到,修改一个键的值会影响其他键,因为它们指向同一个列表对象。
避免此问题的方法是后续单独赋值或使用字典推导式:
keys = ['a', 'b', 'c']new_dict = {k: [] for k in keys}
new_dict['a'].append(1)
print(new_dict) # 输出:{'a': [1], 'b': [], 'c': []}
基本上就这些。fromkeys() 适合快速初始化一批具有相同默认值的键,但对可变值要格外注意。











