2024-04-23 16:23:08 发布
网友
我有一个清单:
my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
并希望搜索包含字符串'abc'的项。我该怎么做?
'abc'
if 'abc' in my_list:
会检查列表中是否存在'abc',但它是'abc-123'的一部分,并且'abc-456','abc'本身不存在。那么,如何获取包含'abc'的所有项?
'abc-123'
'abc-456'
使用filter获取具有abc的元素。
filter
abc
>>> lst = ['abc-123', 'def-456', 'ghi-789', 'abc-456'] >>> print filter(lambda x: 'abc' in x, lst) ['abc-123', 'abc-456']
你也可以使用列表理解。
>>> [x for x in lst if 'abc' in x]
顺便说一下,不要使用单词list作为变量名,因为它已经用于list类型。
list
如果只想检查列表中任何字符串中是否存在abc,可以尝试
some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456'] if any("abc" in s for s in some_list): # whatever
如果您真的想获取包含abc的所有项,请使用
matching = [s for s in some_list if "abc" in s]
把这个抛到一边:如果您碰巧需要匹配多个字符串,例如abc和def,您可以将两个理解组合在一起,如下所示:
def
matchers = ['abc','def'] matching = [s for s in my_list if any(xs in s for xs in matchers)]
输出:
['abc-123', 'def-456', 'abc-456']
使用
filter
获取具有abc
的元素。你也可以使用列表理解。
顺便说一下,不要使用单词
list
作为变量名,因为它已经用于list
类型。如果只想检查列表中任何字符串中是否存在
abc
,可以尝试如果您真的想获取包含
abc
的所有项,请使用把这个抛到一边:如果您碰巧需要匹配多个字符串,例如
abc
和def
,您可以将两个理解组合在一起,如下所示:输出:
相关问题 更多 >
编程相关推荐