【发布时间】:2021-11-24 11:22:56
【问题描述】:
我正在研究字典理解。我从一个值是整数列表的字典开始,我想将它转换为具有相同键的字典,但其值是原始列表的总和。这是一个可重现的示例:
n_dict = {4: [4,1,6], 3: [5,3,9], 2: [8,2,10]}
n_sum = {n_key: sum(n) for n_key in n_dict.keys() for n in n_dict[n_key]}
print(n_sum)
# expected result: {4: 11, 3: 17, 2: 20}
不幸的是,我收到以下类型错误,我无法弄清楚原因:
Traceback (most recent call last):
File "main.py", line 3, in <module>
n_sum = {n_key: sum(n) for n_key in n_dict.keys() for n in n_dict[n_key]}
File "main.py", line 3, in <dictcomp>
n_sum = {n_key: sum(n) for n_key in n_dict.keys() for n in n_dict[n_key]}
TypeError: 'int' object is not iterable
【问题讨论】:
-
n是列表中的单个值,例如4在[4, 1, 6]中,正如错误告诉你的那样,这意味着sum(4)没有意义。为什么要嵌套循环?
标签: python dictionary list-comprehension dictionary-comprehension