Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中查找列表中出现的唯一元素_Python_Python 3.x - Fatal编程技术网

在python中查找列表中出现的唯一元素

在python中查找列表中出现的唯一元素,python,python-3.x,Python,Python 3.x,为了在python中查找惟一元素在列表中的出现情况,我使用了 import collections a='77888' b=list(collections.Counter(a).items()) 但是b是按照出现的顺序排序的b=[('8',3),('7',2)]。但是需要未排序的b。如何实现这一点?要在列表a中查找唯一的项,请执行以下操作: from collections import Counter unique_items = [item for item, count in Co

为了在python中查找惟一元素在列表中的出现情况,我使用了

import collections

a='77888'
b=list(collections.Counter(a).items())

但是b是按照出现的顺序排序的
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()

如果希望以与输入相同的顺序获取项目及其频率,可以定义
OrderedCounter

from collections import Counter, OrderedDict

class OrderedCounter(Counter, OrderedDict):
    pass
然后:


否,
b
未排序。命令是任意的。你认为发生的任何排序都是巧合。第二个值是数字,而不是字符串;输出是
[('8',3),('7',2)]
。为什么您认为需要按任意顺序列出
计数器()
内容以查找唯一元素的出现?我不希望按任意顺序。我希望输出为
b=[('7',2),('8',3)]
按照外观的顺序,您试图找到独特的元素;你能给出输入的例子,以及你想从中找到什么吗?首先,您的示例没有唯一的元素。这听起来像是在追求Y,但真正的问题是X,明白吗
from collections import Counter, OrderedDict

class OrderedCounter(Counter, OrderedDict):
    pass
>>> list(OrderedCounter('77888').items())
[('7', 2), ('8', 3)]
>>> list(OrderedCounter('88877').items())
[('8', 3), ('7', 2)]