当空字典浏览/读取我的列表时,我想向其中添加新键。
当我使用仅包含数字的列表时,这个方法可以正常工作。但是,如果我尝试使用包含字符串和数字的列表,我会得到列表中第一个字符串的 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)
您正在检查thing列表中是否存在,而不是在您的字典中。
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.Counter?Counter是的子类dict,可以为您进行计数。
collections.Counter
Counter
dict
from collections import Counter di = Counter(stuff) print(di)
如果您仍在学习,您的方法很好,但使用Counter才是最佳方法。