Python无需pandas如何并行遍历字典各键对应列表的同位置元素
解决方案
仅使用Python内置函数即可实现需求,无需依赖pandas等第三方库。
实现代码
d = {'a': [1,2,3], 'b': [3,4,5], 'c':[6,7,8]} # 获取字典所有键(Python3.7+默认和插入顺序一致) keys = list(d.keys()) # 按位置并行遍历所有列表 for loop_idx, items in enumerate(zip(*d.values()), start=1): output_str = ','.join([f"{key}:{val}" for key, val in zip(keys, items)]) print(f"loop {loop_idx} output: {output_str}")
说明
zip(*d.values())会将字典中所有值列表解包后传入zip方法,zip会依次提取每个列表的同位置元素组合为元组,刚好匹配并行按位置取值的需求。因为你已经明确所有列表长度完全一致,不需要处理长度不一致的截断问题。enumerate的start=1参数用来让循环计数从1开始,和你给出的输出示例序号匹配。- 如果你使用的是Python3.7以下的版本,字典不保证插入顺序,可手动指定键的顺序:
keys = ['a', 'b', 'c'],就能保证输出的键顺序符合预期。
运行上述代码即可得到你给出的预期输出结果。
内容的提问来源于stack exchange,提问作者sprint_6
相关产品推荐
相关产品推荐

