如何在以下列表中搜索包含字符串“abc”的项目?

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

以下检查“abc”是否在列表中,但未检测到“abc-123”和“abc-456”:

if 'abc' in xs:

当前回答

我进行了一次搜索,需要您输入某个值,然后它将从包含您输入的列表中查找一个值:

my_list = ['abc-123',
        'def-456',
        'ghi-789',
        'abc-456'
        ]

imp = raw_input('Search item: ')

for items in my_list:
    val = items
    if any(imp in val for items in my_list):
        print(items)

尝试搜索“abc”。

其他回答

只是抛出这个:如果你恰好需要匹配多个字符串,例如abc和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']

如果您只需要知道“abc”是否在其中一项中,这是最短的方法:

if 'abc' in str(my_list):

注意:这假设“abc”是字母数字文本。如果“abc”可能只是一个特殊字符(即[]”,),请不要使用它。

如果要获取多个子字符串的数据列表

你可以这样改

some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
# select element where "abc" or "ghi" is included
find_1 = "abc"
find_2 = "ghi"
result = [element for element in some_list if find_1 in element or find_2 in element] 
# Output ['abc-123', 'ghi-789', 'abc-456']
any('abc' in item for item in mylist)

问题:给出abc的信息

a = ['abc-123', 'def-456', 'ghi-789', 'abc-456']


aa = [ string for string in a if  "abc" in string]
print(aa)


Output =>  ['abc-123', 'abc-456']