如何在 python 中将变量与数组部分匹配

how to do partially match variable with array in python

我有一个脚本可以对数组进行部分匹配变量,但它不起作用

import re

b = "Arun"
links_check_arr = ['Arun sdsdds',"dsds","arun ijiji"]
for links_find in links_check_arr:
    if b in list(links_find):
        print  links_find
        print b

以上脚本无效

但是如果我从 if 块中删除列表,它会按预期工作,但它也会匹配空值

import re

b = "Arun"
links_check_arr = ['Arun sdsdds',"dsds","arun ijiji"]
for links_find in links_check_arr:
    if b in links_find:
        print  links_find
        print b

输出:

Arun sdsdds
Arun

但是如果我将 b 值更改为空,它也会匹配空值

重新导入

b = ""
links_check_arr = ['Arun sdsdds',"dsds","arun ijiji"]
for links_find in links_check_arr:
    if b in links_find:
        print  links_find
        print b

输出:

Arun sdsdds

dsds

arun ijiji

但我不想将它与空值匹配

我想对 "Arun" 与数组 ["Arun sdsdds","dsds","arun ijiji"]

中的元素列表进行部分匹配

预期输出:

input:

Arun
Output:

Arun

input:
A
Output:
"" -> (null)

input:

output:

我该怎么做?

对于你的第一个例子,我认为你正在寻找 .split() 而不是 list()

for links_find in links_check_arr:
    if b in links_find.split():
        print  links_find
        print b

我假设您要查找的内容类似于检查 "Arun" 是否是字符串列表中的一个词。

解决此问题的一种更简洁的方法是创建一个新列表,其中包含 links_check_arr 中包含您所需单词的所有元素。您可以使用:

list_of_words = list(filter(lambda x: b in x.split(), links_check_array))

其中 b 是您要搜索的词(例如 "Arun"),links_check_arr 是您要搜索的列表。