如何使用3个列表创建词典词典?

2024-06-08 00:44:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三张单子。第一个列表包含2个值。第二个列表包含多个值,包括一些重复的值,但是它们仅在与列表1中的不同值匹配相同位置时重复。然后是第三个列表,其中包含每个项目的唯一值。你知道吗

list_1 = ["Value1", "Value1", "Value2", "value1"]
list_2 = ["1111", "1234", "1111", "2468"]
list_3 = ["uniqueValue1", "uniqueValue2", "uniqueValue3", "uniqueValue4"]

我想创建一个以value1和value2为键的字典,然后根据它们在列表中的位置将其他两个列表作为字典。你知道吗

AllData = {"Value1": "Value1Dict", "Value2": "Value2Dict"}
Value1Dict = {"1111": "uniqueValue1", "1234": "uniqueValue2", "2468": "uniqueValue4"}
Value2Dict = {"1111": "UniqueValue3"}

所以本质上我已经对匹配Value1和value2的位置的数据进行了排序,但是我需要将它们分开。如果有一个更简单的方法来做到这一点,那么我也尝试了这个建议游戏。你知道吗


Tags: 项目列表字典list单子value1value2个值
3条回答

这可能是您要查找的,但请注意,嵌套词典的顺序可能与原始的list_2list_3值不同。你知道吗

In [20]: x = {k: {} for k in list_1}

In [21]: for a, b, c in zip(list_1, list_2, list_3):
    ...:     x[a][b] = c
    ...:     

In [22]: x
Out[22]: 
{'Value1': {'1111': 'uniqueValue1',
  '1234': 'uniqueValue2',
  '2468': 'uniqueValue4'},
 'Value2': {'1111': 'uniqueValue3'}}

我认为你实际上已经得到了上面的答案。你可以用下面的方法来嵌套字典

Value1Dict = {"1111": "uniqueValue1", "1234": "uniqueValue2", "2468": "uniqueValue4"}
Value2Dict = {"1111": "UniqueValue3"}
AllData = {"Value1": Value1Dict, "Value2": Value2Dict}

那应该能正确地嵌套词典!你知道吗

from collections import defaultdict

all_data = defaultdict(dict)
for outer_key, inner_key, value in zip(list_1, list_2, list_3):
    all_data[outer_key][inner_key] = value

相关问题 更多 >

    热门问题