【发布时间】:2019-06-02 07:19:14
【问题描述】:
假设我有:
l = [
['Brasil', 'Italia', [10, 9]],
['Brasil', 'Espanha', [5, 7]],
['Italia', 'Espanha', [7,8]],
]
还有一个空字典:
d = {}
我正在尝试在字典理解中执行此操作:
for x in l:
if (x[0] not in d):
d[x[0]] = 0
else:
d[x[0]] += 1
# Out: {'Brasil': 1, 'Italia': 0}
但是当我尝试时:
d = {k: (0 if (k not in d) else (d[k]+1)) for k in [x[0] for x in l]}
# Out: {'Brasil': 0, 'Italia': 0}
我做错了什么?
【问题讨论】:
-
在您的列表中,巴西与 10 相关联,意大利与 9 相关联?
-
这可能是
Counter的工作。 -
对于给定的 l,d 看起来如何?
-
@Feelsbadman 仅以合乎逻辑的方式
-
理解构建一个新字典,然后赋值将名称“d”重新绑定到该字典。你原来的字典是空的。
标签: python python-3.x