Python 根据频率筛选列表中的令牌

Python 根据频率筛选列表中的令牌,python,filter,counter,frequency,Python,Filter,Counter,Frequency,我正在处理一个列表对象,其中包含几个频率不同的标记 from collections import Counter s = {'book', 'car', 'bird', 'cup', 'book', 'cup', 'river'} print(Counter(s)) [('book': 2), ('cup': 2), ('river': 1), ('car': 1), ('bird': 1)] 我想设置一个过滤器,通过该过滤器只选择出现两次的令牌,并且我在当前尝试中使用以下

我正在处理一个列表对象,其中包含几个频率不同的标记

from collections import Counter

s = {'book',
 'car',
 'bird',
 'cup',
 'book',
 'cup',
 'river'}

print(Counter(s))

[('book': 2), ('cup': 2), ('river': 1), ('car': 1), ('bird': 1)]
我想设置一个过滤器,通过该过滤器只选择出现两次的令牌,并且我在当前尝试中使用以下代码

select = [word for word in s if list(s).count(word) >= 2]
select

我认为这很简单,但我没有从“选择”中得到任何输出。我的代码出了什么问题以及如何处理它?

如果
s
是一个列表,而不是一个集合(就像你在问题中写的,但不是你示例中的代码),您可以使用
计数器
对象的
最常用
功能来获取列表中的前X个元素:

In [67]: s = ['book',
    ...:  'car',
    ...:  'bird',
    ...:  'cup',
    ...:  'book',
    ...:  'cup',
    ...:  'river']

In [68]: s
Out[68]: ['book', 'car', 'bird', 'cup', 'book', 'cup', 'river']

In [69]: c = Counter(s)

In [70]: c.most_common(2)
Out[70]: [('book', 2), ('cup', 2)]
如果要获取显示次数超过Y次的元素,可以使用:

In [71]: [x[0] for x in c.items() if x[1] >= 2]
Out[71]: ['book', 'cup']

x[0]
是列表中的项目,
x[1]
是频率,如果
s
是一个列表,而不是一个集合(就像你在问题中写的,但不是你例子中的代码),您可以使用
计数器
对象的
最常用
功能来获取列表中的前X个元素:

from collections import Counter

s = {'book',
 'car',
 'bird',
 'cup',
 'book',
 'cup',
 'river'}

print(Counter(s))

[('book': 2), ('cup': 2), ('river': 1), ('car': 1), ('bird': 1)]
In [67]: s = ['book',
    ...:  'car',
    ...:  'bird',
    ...:  'cup',
    ...:  'book',
    ...:  'cup',
    ...:  'river']

In [68]: s
Out[68]: ['book', 'car', 'bird', 'cup', 'book', 'cup', 'river']

In [69]: c = Counter(s)

In [70]: c.most_common(2)
Out[70]: [('book', 2), ('cup', 2)]
如果要获取显示次数超过Y次的元素,可以使用:

In [71]: [x[0] for x in c.items() if x[1] >= 2]
Out[71]: ['book', 'cup']

x[0]
是项目(从列表中),而
x[1]
是频率

您显示的一组,每个值只具有唯一值一次。请给出一个答案;请注意,堆栈片段是针对HTML/CSS/JS的,不支持Python。您将显示一个集合,该集合将只具有每个唯一值一次。请给出一个答案;请注意,堆栈片段是用于HTML/CSS/JS的,不支持Python。这不是我想要的原因,“.most_common()”只对它们进行排序。您能解释一下x[0]和x[1]之间的区别吗?好的,我知道了。谢谢。这不是我想要的原因。大多数常用()只对它们进行排序。你能解释一下x[0]和x[1]之间的区别吗?好的,我知道了。谢谢
from collections import Counter

s = {'book',
 'car',
 'bird',
 'cup',
 'book',
 'cup',
 'river'}

print(Counter(s))

[('book': 2), ('cup': 2), ('river': 1), ('car': 1), ('bird': 1)]