我知道您可以使用以下方法检查密钥是否存在:
if key in mydict:
...
但是我希望以某种方式在字典理解中使用它来构造字典。
例如:
mylist = [('a', 0.01), ('b', 0.02), ('c', 0.03), ('a', 0.04)]
mydict = {item[0]: item[1] for item in mylist if item[0] not in mydict else blah blah}
实现这一目标的最佳方式是什么?
我也需要其他部分。
编辑:澄清。在我的情况下,我实际上需要具有给定项[0]值的所有项目的项目[1]值的总和。
答案 0 :(得分:2)
Python dict是具有唯一键的无序结构。 因为您需要首先遇到的键的值 - 以相反的顺序迭代输入列表:
mylist = [('a', 0.01), ('b', 0.02), ('c', 0.03), ('a', 0.04)]
mydict = {t[0]:t[1] for t in mylist[::-1]}
print(mydict)
输出:
{'a': 0.01, 'c': 0.03, 'b': 0.02}
答案 1 :(得分:2)
字典理解:
mylist = [('a', 0.01), ('b', 0.02), ('c', 0.03), ('a', 0.04)]
mydict = {key:value for key, value in mylist[::-1]}
print(mydict)
输出:
{'a': 0.01, 'c': 0.03, 'b': 0.02}
没有词典理解:
mydict = {}
for key, value in mylist:
if key not in mydict:
mydict[key] = value
else:
# You asked for the else part. Do whatever here.
print(d)
输出:
{'a': 0.01, 'c': 0.03, 'b': 0.02}