Python 集合计数器模块存在最常见的类问题

Python 集合计数器模块存在最常见的类问题,python,Python,我有一个由名为ltst3_upper的列表生成的字典,现在我尝试使用最常见的类仅获取前10个键:值,代码如下: result3 = Counter(list3_upper).most_common(10) sort_result3 = OrderedDict(sorted(result3.items(), key=operator.itemgetter(1), reverse=True)) 我在几个列表中删除了这段代码,这些列表是用计数器“组织”的,其中一些有10个以上的键:值,所以我想修改

我有一个由名为ltst3_upper的列表生成的字典,现在我尝试使用最常见的类仅获取前10个键:值,代码如下:

result3  = Counter(list3_upper).most_common(10)
sort_result3 = OrderedDict(sorted(result3.items(), key=operator.itemgetter(1), reverse=True))
我在几个列表中删除了这段代码,这些列表是用计数器“组织”的,其中一些有10个以上的键:值,所以我想修改Dict

注:正如你所看到的,除了前10个值之外,我还从最高到最小排序,但我认为问题不存在

错误是:

AttributeError: 'list' object has no attribute 'items'
发生这种情况是因为某些列表没有10个键:值吗

非常感谢您的任何输入。

most\u common
返回最常见元素的列表
.items
是一种
dict
方法-列表中没有项。如果要对列表中的所有成员执行某些操作,请对其进行迭代..:

for result in result3:
    o = OrderedDict(sorted(result.items(), key=operator.itemgetter(1), reverse=True))
但是这也行不通-列表中的单个成员是
tuple
,而不是
dict
-并且
tuple
对象没有
items
方法。相反,只需使用
结果创建
OrderedDict

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)])
most_common
返回最常用元素的列表
.items
是一种
dict
方法-列表中没有项。如果要对列表中的所有成员执行某些操作,请对其进行迭代..:

for result in result3:
    o = OrderedDict(sorted(result.items(), key=operator.itemgetter(1), reverse=True))
但是这也行不通-列表中的单个成员是
tuple
,而不是
dict
-并且
tuple
对象没有
items
方法。相反,只需使用
结果创建
OrderedDict

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)])

1. <代码>最常见的
是一个方法,而不是一个类。2. <代码>结果3
是一个列表
list
对象没有
items()
方法,因此
result3.items()
失败。3.您希望排序,但随后尝试创建字典。现在还不清楚你想要实现什么。您应该提供一些示例输入和预期输出。使用
OrderedDict(sorted(result3,key=operator.itemgetter(1),reverse=True))
。绝对不需要
sorted
,因为大多数常见的
的结果已经排序。只需执行
OrderedDict(result3)
即可,但稍后我将需要导出到csv,在这种情况下,值不会被排序。。我想是吧。如果打印出来的话,它只是分类而已。。我说得对吗?不,最常见的结果是一个列表,排序方式总是一样的。文件上说“……从最常见到最不常见”。如果它们在您的CSV中以不同的顺序结束,则问题必须在其他地方<代码>排序
在此处不起任何作用。1<代码>最常见的是一个方法,而不是一个类。2. <代码>结果3是一个列表
list
对象没有
items()
方法,因此
result3.items()
失败。3.您希望排序,但随后尝试创建字典。现在还不清楚你想要实现什么。您应该提供一些示例输入和预期输出。使用
OrderedDict(sorted(result3,key=operator.itemgetter(1),reverse=True))
。绝对不需要
sorted
,因为大多数常见的
的结果已经排序。只需执行
OrderedDict(result3)
即可,但稍后我将需要导出到csv,在这种情况下,值不会被排序。。我想是吧。如果打印出来的话,它只是分类而已。。我说得对吗?不,最常见的结果是一个列表,排序方式总是一样的。文件上说“……从最常见到最不常见”。如果它们在您的CSV中以不同的顺序结束,则问题必须在其他地方<代码>排序
在此处不起任何作用。这很有意义。。。我现在明白了。谢谢您还必须删除
反向
参数,这些参数属于
排序的
。现在它将把它们作为条目添加到结果字典中!这是有道理的。。。我现在明白了。谢谢您还必须删除
反向
参数,这些参数属于
排序的
。现在它将把它们作为条目添加到结果字典中!