繁体   English   中英

检查一个单词在元组列表中是否至少出现两次?

[英]Check if a word appears at least twice in a list of tuples?

假设我有一个列表:

[('a','Organization'),('b','Organization'),('c','Person'),('d','Location'),('e','Organization')]

我如何知道'Organization'一词在此列表中是否至少出现两次?

我也得到另一个解决方案:

Counter([c for (w,c) in list])['ORGANIZATION'] >= 2

您可以使用生成器理解和sum来计算'Organization'出现的次数:

l = [('a','Organization'),('b','Organization'),
     ('c','Person'),('d','Location'),('e','Organization')]

sum(1 for i,j in l if j == 'Organization') > 2
# True

尝试这个 :

a = [('a','Organization'),('b','Organization'),('c','Person'),('d','Location'),('e','Organization')]
check_tot_appearance = sum(1 for i in a if 'Organization' in i)>=2

输出

True
list = [('a','Organization'),('b','Organization'),('c','Person'),('d','Location'),('e','Organization')]

sublist = [value[1] for value in list]  # retrieve every second value of each tuple
print(sublist.count('Organization'))  # find occurrences of 'Organization'

另一种使用operator.itemgetter

例如:

from operator import itemgetter
data = [('a','Organization'),('b','Organization'),('c','Person'),('d','Location'),('e','Organization')]

print(list(map(itemgetter(1), data)).count("Organization"))

输出:

3

使用filter检查元组中的“组织”以及计数长度是否大于两倍,则返回True

a=[('a','Organization'),('b','Organization'),('c','Person'),('d','Location'),('e','Organization')]

print(len(list(filter(lambda x: 'Organization' in x,a)))>=2 )

#output True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM