Python将两个列表对应元素组合生成以索引为键的字典实现问题
问题原因
你当前的代码存在两处不符合需求的逻辑:
- 字典的键错误设置为了列表
a的元素,而非你需要的索引位置 - 字典的值只取了列表
b的元素,没有将两个列表对应位置的元素组合为列表
修复方案
方案1:直接修改现有字典推导式
只需要调整键和值的逻辑即可:
a=['a','b','c','c','d'] b=['1','2','3','4','5'] d = {i: [a[i], b[i]] for i in range(len(a))} print(d)
运行后输出就是你预期的结果:
{0: ['a', '1'], 1: ['b', '2'], 2: ['c', '3'], 3: ['c', '4'], 4: ['d', '5']}
方案2:更符合Python风格的实现
用zip配对两个列表的元素,再用enumerate获取索引,代码可读性更高:
a=['a','b','c','c','d'] b=['1','2','3','4','5'] d = {idx: list(pair) for idx, pair in enumerate(zip(a, b))} print(d)
运行结果和上面完全一致。
内容的提问来源于stack exchange,提问作者user16684190
相关产品推荐
相关产品推荐

