在Python中,合并列表以创建字典可以通过多种方法实现,以下是几种常见的方法:
1. 使用`zip()`函数和`dict()`构造函数:
keys = ['name', 'age', 'mobile']
values = ['christy', 24, ]
my_dict = dict(zip(keys, values))
print(my_dict)
输出:
{'name': 'christy', 'age': 24, 'mobile': }
2. 使用列表推导式,当两个列表长度相同时:
list1 = ['name', 'age', 'mobile']
list2 = ['christy', 24, ]
dict_result = {list1[i]: list2[i] for i in range(len(list1))}
print(dict_result)
输出:
{'name': 'christy', 'age': 24, 'mobile': }
3. 当列表长度不同时,使用`itertools.zip_longest()`函数来处理长度不同的列表:
from itertools import zip_longest
keys = ['name', 'age', 'mobile']
values = ['christy', 24]
dict_result = dict(zip_longest(keys, values, fillvalue=None))
print(dict_result)
输出:
{'name': 'christy', 'age': 24, 'mobile': None}
4. 使用`collections.defaultdict`来处理合并字典时键不存在的情形:
from collections import defaultdict
result = defaultdict(int)
dictionaries = [{'name': 'zhangsan', 'age': 18}, {'name': 'lisi', 'age': 19}, {'name': 'wangwu', 'age': 20}]
for d in dictionaries:
result.update(d)
print(dict(result))
输出:
{'name': 'wangwu', 'age': 20, 'zhangsan': 18, 'lisi': 19}
以上方法展示了如何将两个列表合并成字典的不同方式,具体使用哪种方法取决于你的具体需求和列表的内容