gpt4 book ai didi

python - 如何从元组列表中形成字典?

转载 作者:行者123 更新时间:2023-11-28 22:48:08 25 4
gpt4 key购买 nike

我有一个元组列表,例如:

iList = [('FirstParam', 1), ('FirstParam', 2), ('FirstParam', 3), ('FirstParam', 4), ('SecondParam', 5), ('SecondParam', 6), ('SecondParam', 7)]

我想制作一个字典,应该是这样的:

iDict = {'FirstParam': 1, 'SecondParam': 5}{'FirstParam': 1, 'SecondParam': 6}{'FirstParam': 1, 'SecondParam': 7}{'FirstParam': 2, 'SecondParam': 5}{'FirstParam': 2, 'SecondParam': 6}{'FirstParam': 2, 'SecondParam': 7}{'FirstParam': 3, 'SecondParam': 5}{'FirstParam': 3, 'SecondParam': 6}{'FirstParam': 3, 'SecondParam': 7}{'FirstParam': 4, 'SecondParam': 5}{'FirstParam': 4, 'SecondParam': 6}{'FirstParam': 4, 'SecondParam': 7}

因此 iDict 形成了 iList 的所有可能组合。

MyExp 将是我要形成的字典的键。所以最后应该是

Dictionary = dict(itertools.izip(MyExp, iDict))

我尝试先生成 iDict,我试过了

h = {}
[h.update({k:v}) for k,v in iList]
print "Partial:", h

我希望得到

Partial: {{'FirstParam': 1}, {'FirstParam': 2}, {'FirstParam': 3}, {'FirstParam': 4}{'SecondParam': 5}, {'SecondParam': 6}, {'SecondParam': 7}}

从那里我可以继续获得实际的 iDict,然后是 Dictionary。但是我得到了以下输出。

Partial: {'FirstParam': 4, 'SecondParam': 7}

谁能告诉我我的逻辑到底哪里出了问题,我应该如何进一步处理?

最佳答案

iDict 不会成为字典。它不能,因为键是重复的。根据定义,字典具有唯一的键。相反,我猜你真的希望 iDict 成为 list字典的每一个组合 'FirstParam''SecondParam'表示为字典之一。

首先,我们要将您的元组列表分成两个列表,一个包含所有 'FirstParam'元组和一个包含所有 'SecondParam' 的元组.

iList = [('FirstParam', 1), ('FirstParam', 2), 
('FirstParam', 3), ('FirstParam', 4),
('SecondParam', 5), ('SecondParam', 6),
('SecondParam', 7)]

first_params = [i for i in iList if i[0] == 'FirstParam']
second_params = [i for i in iList if i[0] == 'SecondParam']

现在我们需要获取这两个列表的每个组合并从中形成一个字典,然后将这些字典放入一个列表中。我们可以在一个语句中完成所有这些,使用 itertools.product 获取参数的所有组合,转换 product 的元组使用 dict 返回字典,并用 list comprehension 对所有组合进行处理.

from itertools import product

result = [dict(tup) for tup in product(first_params, second_params)]

print(result)
# [{'FirstParam': 1, 'SecondParam': 5},
# {'FirstParam': 1, 'SecondParam': 6},
# {'FirstParam': 1, 'SecondParam': 7},
# {'FirstParam': 2, 'SecondParam': 5},
# {'FirstParam': 2, 'SecondParam': 6},
# {'FirstParam': 2, 'SecondParam': 7},
# {'FirstParam': 3, 'SecondParam': 5},
# {'FirstParam': 3, 'SecondParam': 6},
# {'FirstParam': 3, 'SecondParam': 7},
# {'FirstParam': 4, 'SecondParam': 5},
# {'FirstParam': 4, 'SecondParam': 6},
# {'FirstParam': 4, 'SecondParam': 7}]

关于python - 如何从元组列表中形成字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25433602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com