繁体   English   中英

如何使用 Python 中的 function 在两个列表之间进行过滤?

[英]How can you filter between two lists using a function in Python?

我试图让 Python 过滤两个列表之间的值。 它正在粘贴原始列表的值并忽略说明。 提前感谢您的意见。

string_val = ['Tom','Kyle','Carl','Tom','Mike','Austin']
delval = ['Tom','Kyle']


def filter_list(string_val, delval):
    new_string =[]
    for v in string_val:
        if (string_val) != (delval):
            new_string.append(v)
    return new_string

result = filter_list(string_val, delval)
print(result)

您正在比较错误的值,您应该比较每个值而不是整个 delval。

def filter_list(string_val, delval):
    new_string =[]
    for v in string_val:
        found = False
        if v not in delval:
            new_string.append(v)
    return new_string

result = filter_list(string_val, delval)
print(result)

首先,您正在遍历具有名称的string_val 您想检查每个名称是否在delval中。 使用in我认为您正在寻找类似的东西(列表理解)

string_val = ['Tom','Kyle','Carl','Tom','Mike','Austin']
delval = ['Tom','Kyle']
def filterList(string_val,delval):
    return [names for names in string_val if names not in delval]
print(filterList(string_val,delval))

output

['Carl', 'Mike', 'Austin']

这是用于查找不相交元素的 Python 单行代码。

def filter_list(string_val, delval):
    return list(set(string_val) - set(delval))

Output

['Austin', 'Mike', 'Carl']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM