[英]Python Check if list of sets contains item
假设我有L = [{'G'}, {'D'}, {'B','C'}]
。
我想检查'C'是否在L中。
我尝试{'C'} in L
执行{'C'} in L
,但返回False
。
我如何检查“ C”是否在L中?
您正在用字符串匹配元组。 您要做的是-
list
的set
使用列表理解 set
检查搜索字符串是否存在 boolean
列表,并使其通过any()
函数,如果list
中的任何boolean
项为True
则该函数返回True
。 你应该做 -
L = [{'G'}, {'D'}, {'B','C'}]
print(any([ 'C' in i for i in L]))
输出量
True
再举一个例子-
print(any([ 'X' in i for i in L]))
输出量
False
您还可以根据“真假”条件过滤结果:
L = [{'G'}, {'D'}, {'B','C'}]
word='C'
print([True if list(filter(lambda x:word in x,L)) else False])
输出:
[True]
评论的更新依据:
您可以尝试以下方法:
def union_similar(list_data,values_data):
checker = {}
final_ = []
for item in list_data:
for values in values_data:
if values in item:
if values not in checker:
checker[values] = [item]
else:
checker[values].append(item)
sub_ = set()
for check, no in checker.items():
if len(no) > 1:
for i in no:
sub_.update(*i)
list_data.remove(i)
else:
sub_.update(*no[0])
list_data.remove(no[0])
list_data.append(sub_)
return list_data
print(union_similar(L,c))
输出:
测试案例1:
L = [{'G'}, {'D'}, {'B','C'}]
c=['C','G']
输出:
[{'D'}, {'B', 'C', 'G'}]
Test_case_2:
L = [{'G'}, {'D'}, {'B','C'},{'U','C'}]
c=['C','G']
输出:
[{'D'}, {'U', 'B', 'G', 'C'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.