Python中如何将给定交替元素列表转换为键值对字典
实现方法
针对你给出的「键值交替排列的列表转字典」需求,有两种高效的实现方案,时间复杂度均为O(n):
方案1:切片+zip构造(最简洁,适合普通长度列表)
source_list = ['a', 100, 'b', 200, 'c', 300, 'd', 400] result_dict = dict(zip(source_list[::2], source_list[1::2]))
- 逻辑说明:
source_list[::2]取所有偶数索引元素(即所有键),source_list[1::2]取所有奇数索引元素(即所有值),zip将两个序列配对为元组组,dict直接转换为字典。
方案2:迭代器构造(内存效率更高,适合超大长度列表)
source_list = ['a', 100, 'b', 200, 'c', 300, 'd', 400] list_iter = iter(source_list) result_dict = dict(zip(list_iter, list_iter))
- 逻辑说明:将列表转为迭代器后,
zip每次会从同一个迭代器中依次取两个元素配对,不会生成额外的中间切片副本,内存占用更低。
注意:两种方案均要求输入列表长度为偶数,且严格遵循「键、值、键、值」的交替排列规则。
内容的提问来源于stack exchange,提问作者Dheeraj Surwase
相关产品推荐
相关产品推荐

