我设法在字典中合并两个列表(一个代表键,另一个代表值),以便进一步计算值的频率。这给了我一个字典,每个键的列表中有多个值:
我现在想要为每个密钥计算不同价值的总数,例如:在我的打印屏幕上,对于按键1068,有2个不同的按键(70803,70805)。 我试过这个:
然而,它只给出了值出现的总时间,这不是我想要的。 由于我是一个非常初学者,我不知道如何继续(特别是那个带有列表的字典)
感谢所有人!
卢瓦克
答案 0 :(得分:0)
如果我理解你的问题,以下应该可以解决问题:
for k, v in d.items():
print(k, len(set(v)))
对于每个值列表,您可以创建一组元素并获取其长度。
答案 1 :(得分:0)
这是我的代码: 首先,我从两个列表中获得的词典:
from collections import defaultdict
keys = ['31', '53', '57', '57', '57', '82', '82', '82', '82', '82', '82', '82', '82', '82','82']
values = ['70803', '70901', '70801', '70801', '70801', '70801', '70804', '70812', '70812', '70812', '70812', '70813', '70813', '70813', '70813']
d = {}
for k,v in zip(keys, values):
d.setdefault(k, []).append(v)
d
返回我:
{'31': ['70803'],
'53': ['70901'],
'57': ['70801', '70801', '70801'],
'82': ['70801',
'70804',
'70812',
'70812',
'70812',
'70812',
'70813',
'70813',
'70813',
'70813']}
然后我想要计算每个键,它具有的不同值的数量。 当我尝试继续时:
from collections import Counter
from collections import defaultdict
d = {'31': ['70803'],
'53': ['70901'],
'57': ['70801', '70801', '70801'],
'82': ['70801',
'70804',
'70812',
'70812',
'70812',
'70812',
'70813',
'70813',
'70813',
'70813']}
for k, v in d.items():
print(k, len(set(v))
它让我回复:
File "<ipython-input-5-f243768fffa2>", line 248
print(k, len(set(v))
^
SyntaxError:解析时的意外EOF
所以我在这里:)我不知道如何继续进行