0
在Python中发现特有的元素出现在列表中,我用查找列表独特元素的出现在python
import collections
a='77888'
b=list(collections.Counter(a).items())
但B在OCCURENCES b=[('8',3),('7',2)]
的顺序进行排序。但是想要排序b
。我怎样才能做到这一点?
在Python中发现特有的元素出现在列表中,我用查找列表独特元素的出现在python
import collections
a='77888'
b=list(collections.Counter(a).items())
但B在OCCURENCES b=[('8',3),('7',2)]
的顺序进行排序。但是想要排序b
。我怎样才能做到这一点?
要在列表中找到a
唯一项目:
from collections import Counter
unique_items = [item for item, count in Counter(a).items() if count == 1]
如果输入的排序,那么你可以使用itertools.groupby()
:
from itertools import groupby
unique_items = [key for key, group in groupby(a) if len(list(group)) == 1]
如果你想在同一顺序的项目及其频率如输入中那样,您可以定义OrderedCounter
:
from collections import Counter, OrderedDict
class OrderedCounter(Counter, OrderedDict):
pass
then:
>>> list(OrderedCounter('77888').items())
[('7', 2), ('8', 3)]
>>> list(OrderedCounter('88877').items())
[('8', 3), ('7', 2)]
不,'b'是**不**排序。顺序是任意的。您认为发生的任何排序在这里都是巧合。第二个值是*数字*,而不是字符串;输出是'[('8',3),('7',2)]'。 –
为什么你觉得你需要以任意顺序列出'Counter()'内容来查找唯一元素的出现? –
我不想要任意的顺序。我想按出现顺序输出为'b = [('7',2),('8',3)]' – Dheerendra