有人能向我解释一下这一点吗?或者告诉我用正确的/节奏式的方法来做这件事?
我试图遍历字典数D:countsD = {"aa": None, "bb": None, "cc": None, "dd": None}
以及相应的字典d中的匹配:d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (45, 98), "dd": (1, 33)}
将项的计数作为值添加到相应的匹配键中,以最终创建此计数D{"aa": 6, "bb": 3, "cc": 2, "dd": 2}
如果我这么做的话> d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (45, 98), "dd": (1, 33)}
> for key in d:
>> print(key)
>> print(len(d[key]))
回来的是这个,这就是我想要的aa
6
cc
2
dd
2
bb
3
但是,如果一个键的值只包含一个值(完全可能),例如(参见“cc”):d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (45), "dd": (1, 33)}
然后运行相同的for循环,在“cc”键上得到一个错误:aa
6
cc
Traceback (most recent call last):
File "", line 3, in
TypeError: object of type 'int' has no len()
但是,如果我使“cc”键有一个空值(),那么一切都是正常的。d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (), "dd": (1, 33)}
>>> d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (), "dd": (1, 33)}
>>> for key in d:
... print(key)
... print(len(d[key]))
...
aa
6
cc
0
dd
2
bb
3
刚才在输入这篇文章的标题时,我被提到计算每个键在字典中的值数想知道答案>>> d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (), "dd": (1, 33)}
>>> new_countsD = {k: len(v) for k,v in d.items()}
>>> new_countsD
{'aa': 6, 'bb': 3, 'cc': 0, 'dd': 2}
这不是,见键“cc”>>> d = {"aa": (5689, 34, 44, 77, 88, 321), "bb": (33, 6742, 89744), "cc": (111), "dd": (1, 33)}
>>> new_countsD = {k: len(v) for k,v in d.items()}
Traceback (most recent call last):
File "", line 1, in
File "", line 1, in
TypeError: object of type 'int' has no len()
那么,是什么原因?我觉得我错过了一些愚蠢的东西.。