gpt4 book ai didi

python - 如何获得项目的计数字典但保持它们出现的顺序?

转载 作者:行者123 更新时间:2023-12-04 21:57:31 26 4
gpt4 key购买 nike

例如,我需要计算一个单词在列表中出现的次数,不是按频率排序,而是按单词出现的顺序,即插入顺序。

from collections import Counter

words = ['oranges', 'apples', 'apples', 'bananas', 'kiwis', 'kiwis', 'apples']

c = Counter(words)

print(c)

所以,而不是: {'apples': 3, 'kiwis': 2, 'bananas': 1, 'oranges': 1}
我宁愿得到: {'oranges': 1, 'apples': 3, 'bananas': 1, 'kiwis': 2}
我真的不需要这个 Counter方法,任何会产生正确结果的方法对我来说都可以。

最佳答案

您可以使用 recipe使用 collections.Countercollections.OrderedDict :

from collections import Counter, OrderedDict

class OrderedCounter(Counter, OrderedDict):
'Counter that remembers the order elements are first encountered'

def __repr__(self):
return '%s(%r)' % (self.__class__.__name__, OrderedDict(self))

def __reduce__(self):
return self.__class__, (OrderedDict(self),)

words = ["oranges", "apples", "apples", "bananas", "kiwis", "kiwis", "apples"]
c = OrderedCounter(words)
print(c)
# OrderedCounter(OrderedDict([('oranges', 1), ('apples', 3), ('bananas', 1), ('kiwis', 2)]))

关于python - 如何获得项目的计数字典但保持它们出现的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23747564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com