[英]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.