我有一个脚本用数组做部分匹配变量,但它不能正常工作
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:
我该怎么做?
答案 0 :(得分:0)
在您的第一个示例中,我认为您正在寻找.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
是您要搜索的列表。