![](/img/trans.png)
[英]Get items from a list if an item contains two separate strings python
[英]Get items from list if the item contains any of the strings in another list (Python)
我有一个看起来像的列表:
a_list = ['abc','acd','ade','bef','fba','adf','fac']
如果它包含ab
或ac
,我想要列表中的所有项目。 从上面的示例中,我希望列表为:
b_list = ['abc','acd','fac']
我尝试了以下方法,但它给了我一个TypeError
。
b_list = [x for x in a_list if any(['ab','ac') in x]
any()
的参数必须是一系列布尔值。 您只有一个 boolean,这不是您想要的条件。
您想测试ab
和ac
是否都在字符串中,而不是它们的元组或列表。
b_list = [string for string in a_list if any(substring in string for substring in ('ab','ac'))]
你快到了,但你不能交叉检查多个子字符串与一个字符串。 您可以做的是使用两个条件与or
:
b_list = [x for x in a_list if 'ab' in x or 'ac' in x]
如果您有要检查的子字符串列表,则可以在条件中使用any()
,但您必须遍历子字符串:
subs = ('ab','ac')
b_list = [x for x in a_list if any(s in x for s in subs)]
你几乎明白了。 您需要遍历 ['ab','ac'] 以检查它是否存在于a_list
的项目中。
b_list = [item for item in a_list if any(x in item for x in ['ab','ac'])]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.