小能豆

当空字典读取输入列表时,如何向其中添加新键?

py

当空字典浏览/读取我的列表时,我想向其中添加新键。

当我使用仅包含数字的列表时,这个方法可以正常工作。但是,如果我尝试使用包含字符串和数字的列表,我会得到列表中第一个字符串的 KeyError。

有人能告诉我为什么会这样,或者我该如何解决这个问题吗?

di = {}
stuff = ['sun', 20, 20, 14.3, 'sun', 'Flower']
for thing in stuff:
    if thing not in stuff:
        di[thing] = 1
    else:
        di[thing] += 1
print(di)

阅读 5

收藏
2024-12-21

共1个答案

小能豆

您正在检查thing列表中是否存在,而不是在您的字典中。

di = {}
stuff = ['sun', 20, 20, 14.3, 'sun', 'Flower']
for thing in stuff:  # error was here
    if thing not in di:
        di[thing] = 1
    else:
        di[thing] += 1
print(di)

您知道吗collections.CounterCounter是的子类dict,可以为您进行计数。

from collections import Counter
di = Counter(stuff)
print(di)

如果您仍在学习,您的方法很好,但使用Counter才是最佳方法。

2024-12-21