如何检查具有多个子列表的列表中是否存在子字符串?
how to check if a substring exist in the list having several sublists?
假设我有一个列表,例如:
example_of_list = [[['aaaa'],['bbbb'],['cccc']], [['aabsd'],['fdwewd'],['dsfss']], [['sssss'],['ddddd'],['fffff']]]
我想检查 my_list 是否包含子字符串
sub_sting = 'aaa'
所以,在那种情况下,这将给出 'True',因为我在列表中有 'aaaa' 作为子列表。
如何查看这个东西?
我已经考虑过'in'或'str.contains',但似乎没有给出正确的回应。
您可以展平列表,然后遍历它。我从 What is the fastest way to flatten arbitrarily nested lists in Python?
得到了 flatten 函数
example_list = [[['aaaa'],['bbbb'],['cccc']], [['aabsd'],['fdwewd'],['dsfss']], [['sssss'],['ddddd'],['fffff']]]
def flatten(container):
for i in container:
if isinstance(i, (list,tuple)):
for j in flatten(i):
yield j
else:
yield i
new_list = list(flatten(example_list))
for elem in new_list:
if ('aaa' in elem):
print(elem)
这是一个可能的解决方案:
from itertools import chain
def contains(lst, substr):
return any(substr in s for s in chain(*chain(*lst)))
您可以这样使用函数:
lst = [[['aaaa'], ['bbbb'], ['cccc']],
[['aabsd'], ['fdwewd'], ['dsfss']],
[['sssss'], ['ddddd'], ['fffff']]]
substr = "aaa"
print(contains(lst, substr)) # True
假设我有一个列表,例如:
example_of_list = [[['aaaa'],['bbbb'],['cccc']], [['aabsd'],['fdwewd'],['dsfss']], [['sssss'],['ddddd'],['fffff']]]
我想检查 my_list 是否包含子字符串
sub_sting = 'aaa'
所以,在那种情况下,这将给出 'True',因为我在列表中有 'aaaa' 作为子列表。
如何查看这个东西?
我已经考虑过'in'或'str.contains',但似乎没有给出正确的回应。
您可以展平列表,然后遍历它。我从 What is the fastest way to flatten arbitrarily nested lists in Python?
得到了 flatten 函数example_list = [[['aaaa'],['bbbb'],['cccc']], [['aabsd'],['fdwewd'],['dsfss']], [['sssss'],['ddddd'],['fffff']]]
def flatten(container):
for i in container:
if isinstance(i, (list,tuple)):
for j in flatten(i):
yield j
else:
yield i
new_list = list(flatten(example_list))
for elem in new_list:
if ('aaa' in elem):
print(elem)
这是一个可能的解决方案:
from itertools import chain
def contains(lst, substr):
return any(substr in s for s in chain(*chain(*lst)))
您可以这样使用函数:
lst = [[['aaaa'], ['bbbb'], ['cccc']],
[['aabsd'], ['fdwewd'], ['dsfss']],
[['sssss'], ['ddddd'], ['fffff']]]
substr = "aaa"
print(contains(lst, substr)) # True