Python中如何高效将两个列表合并为含多键的字典列表?
高效将两个列表转换为指定格式的字典列表
嘿,这个需求在日常Python开发里太常见了!我给你分享几种既高效又简洁的实现方式,都是Python圈里公认的「优雅写法」:
方法一:列表推导式 + zip(最推荐)
这是最直观、可读性最高的方案,而且时间复杂度是O(n),效率拉满:
my_list1 = ["Harry", "Bob"] my_list2 = ["21", "23"] # 核心代码一行搞定 result = [{"name": name, "age": age} for name, age in zip(my_list1, my_list2)] print(result) # 输出: [{"name": "Harry", "age":"21"}, {"name": "Bob", "age":"23"}]
原理很简单:zip()会把两个列表中对应位置的元素配对成元组,然后列表推导式逐个把这些元组转换成你需要的字典格式。
方法二:map + lambda (简洁派可选)
如果你偏爱更紧凑的写法,用map()配合匿名函数也能实现:
result = list(map(lambda x, y: {"name": x, "age": y}, my_list1, my_list2))
这里map()会把两个列表的元素依次传给lambda函数,生成对应的字典,最后用list()把迭代器转换成列表。不过相比列表推导式,这种写法的可读性稍弱一点,适合简单场景。
小提示
如果你的两个列表长度可能不一致,可以用itertools.zip_longest来替代zip(),这样不会因为短列表结束就丢弃长列表里的剩余元素(还能指定默认值处理缺失项)。
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

