如何在python

时间:2016-07-05 07:35:46

标签: python arrays comparison

我有一个脚本用数组做部分匹配变量,但它不能正常工作

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:

我该怎么做?

1 个答案:

答案 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是您要搜索的列表。