我有一个元组列表,例如:
iList = [('FirstParam', 1), ('FirstParam', 2), ('FirstParam', 3), ('FirstParam', 4), ('SecondParam', 5), ('SecondParam', 6), ('SecondParam', 7)]
我想做一本字典,它应该看起来像:
^{pr2}$因此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'
和{首先,我们将把元组列表分成两个列表,一个包含所有
'FirstParam'
元组,另一个包含所有'SecondParam'
元组。在现在我们需要把这两个列表的每一个组合都取出来组成一个字典,然后把这些字典放到一个列表中。我们可以在一个语句中完成所有这些,使用^{} 获取参数的所有组合,使用^{} 将
^{pr2}$product
返回的元组转换为字典,并使用list comprehension对所有组合执行此操作。在不幸的是,不能把thay放在一个大的听写式中,因为字典中不能有重复的键(而且会有多个“FirstParam”和“SecondParam”键)。如果要创建一个迷你字典列表(每个小字典的键为“FirstParam”和“SecondParam”),则:
相关问题 更多 >
编程相关推荐