python批量创建字典_Python 创建字典与fromkeys的坑
时间: 2024-01-24 21:11:15 浏览: 141
好的,关于Python批量创建字典,可以使用以下方法:
1. 使用循环语句创建字典
```python
keys = ['name', 'age', 'gender']
values = ['Tom', 18, 'male']
dic = {}
for i in range(len(keys)):
dic[keys[i]] = values[i]
print(dic)
```
2. 使用字典推导式创建字典
```python
keys = ['name', 'age', 'gender']
values = ['Tom', 18, 'male']
dic = {keys[i]: values[i] for i in range(len(keys))}
print(dic)
```
3. 使用zip函数创建字典
```python
keys = ['name', 'age', 'gender']
values = ['Tom', 18, 'male']
dic = dict(zip(keys, values))
print(dic)
```
关于fromkeys方法创建字典的坑,需要注意的是,如果使用fromkeys方法创建字典时,传入的value参数是可变对象(例如列表),那么所有的键将共享这个可变对象,可能会导致意料之外的结果。例如:
```python
keys = ['name', 'age', 'gender']
values = []
dic = dict.fromkeys(keys, values)
values.append('Tom')
print(dic)
# 输出结果:{'name': ['Tom'], 'age': ['Tom'], 'gender': ['Tom']}
```
可以看到,所有的键都指向了同一个列表对象,因此修改一个键的值,会影响到所有键的值。所以在使用fromkeys方法时,需要注意传入的value参数是否是可变对象,如果是,需要使用深拷贝(copy.deepcopy)来避免这种问题。
阅读全文