首页 > 解决方案 > Python 新手:使用两个列表创建字典,其中一个列表多于一行

问题描述

在不导入任何模块的情况下,我想制作一个字典,比较两个具有相似元素的列表,其中一个列表每个都包含一个额外元素(描述),并希望创建 List_A 中元素的字典作为键和第二个元素如果脚本发现元素相同,则在 List_B 中作为值。

示例:List_A = [a,b,c,d,e] 列表 B = [[b,w], [d,x], [c,y], [a,z]

new_dict = {"a:z", "b:w", "c:y" "d:x"}

标签: pythonlistdictionary

解决方案


这实际上是一个过滤问题。当且仅当 list_a 中存在第一个元素时,您才想使用 list_b 中的元素构建字典。您可以通过几种方式实现这一目标。

list_a = [a,b,c,d,e]
list_b = [[b,w], [d,x], [c,y], [a,z]]

result = {}

for pair in list_b:
    if pair[0] in list_a:
        result[pair[0]] = pair[1]

请注意,您可以通过字典理解获得类似的结果:

result = {pair[0]:pair[1] for pair in list_b if pair[0] in list_a}

我想说的是,修改为 list_b 生成数据的方式可能会有所帮助,并将其设置为项目字典 -> 从一开始就描述。


推荐阅读