我有一个名为ltst3_upper的List字典,现在我正在尝试使用类most_common来获取前10个键:使用以下代码的值:
result3 = Counter(list3_upper).most_common(10)
sort_result3 = OrderedDict(sorted(result3.items(), key=operator.itemgetter(1), reverse=True))
我正在将这些代码放在几个列表中,这些列表是有组织的'使用Counter,其中一些键有10个以上键:值,所以我想修剪Dict。
聚苯乙烯。正如你所看到的那样,除了前10个值之外,我还要从最高到最小,但我不认为问题就在那里。
错误是:
AttributeError: 'list' object has no attribute 'items'
是否发生这种情况是因为某些列表没有10个键:值?
非常感谢您提供的任何输入。
答案 0 :(得分:1)
As the documentation states, most_common
返回最常见元素的列表。 .items
是dict
方法 - 列表没有项目。如果你想对列表中的所有成员做一些事情,你会迭代它们..:
for result in result3:
o = OrderedDict(sorted(result.items(), key=operator.itemgetter(1), reverse=True))
但这也不起作用 - 列表中的个别成员是tuple
,而不是dict
- 而tuple
个对象没有items
方法。相反,只需使用OrderedDict
创建result
:
from collections import Counter, OrderedDict
import operator
list3_upper = ['a', 'e', 'a']
result3 = Counter(list3_upper).most_common(10)
result_dict = OrderedDict(result3)
print(result_dict)
>>> OrderedDict([('a', 2), ('e', 1)])