如何检查字符串列表中是否存在子字符串

How to check for the presence of a substring in a list of strings

我有一个字符串列表,我需要生成一个布尔数组,指示列表的每个单元格中是否存在一个子字符串。如何实现并生成一个数组,而不仅仅是 return 包含子字符串的列表中的字符串?

例如,检查:

my_array = np.array(['hello', 'this', 'is', 'a', 'testello'])

应该return:

check = np.array([1, 0, 0, 0, 1])

或者:

check = np.array([true, false, false, false, true])

当它检查子字符串 'ello' 时。

谢谢!

只需确保 'ello' 包含在 'my_array' 的元素中即可。 下面是检查元素是否包含 'ello'.

的代码
import numpy as np

my_array = np.array(['hello', 'this', 'is', 'a', 'testello'])

check = list()
for data in my_array:
    if 'ello' in data:
        check.append(1)
    else:
        check.append(0)
check = np.array(check)

您可以将 1 更改为 True,将 0 更改为 False。

你有一个 numpy 数组,而不是列表。

无论如何,考虑一个列表(这也适用于 numpy 数组):

my_lst = ['hello', 'this', 'is', 'a', 'testello']

query = 'ello'
out = [query in e for e in my_lst]

# [True, False, False, False, True]

对于 numpy 数组:

my_array = np.array(['hello', 'this', 'is', 'a', 'testello'])

out = np.core.defchararray.find(my_array, query)>0
# array([ True, False, False, False,  True])