[英]How can you filter between two lists using a function in Python?
I am attempting to get Python to filter values between two lists.我试图让 Python 过滤两个列表之间的值。 It is pasting the values of the original list and ignoring the instructions.它正在粘贴原始列表的值并忽略说明。 Thanks in advance for your input.提前感谢您的意见。
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)
You're comparing wrong value, you should compare each value instead of entire delval.您正在比较错误的值,您应该比较每个值而不是整个 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)
First of all you are iterating through string_val
which has names.首先,您正在遍历具有名称的string_val
。 You want to check if each name is in delval
.您想检查每个名称是否在delval
中。 Do this using in
I think your looking for something like this (list comprehension)使用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 output
['Carl', 'Mike', 'Austin']
Here's the Python one-liner code to find the disjoint elements.这是用于查找不相交元素的 Python 单行代码。
def filter_list(string_val, delval):
return list(set(string_val) - set(delval))
Output Output
['Austin', 'Mike', 'Carl']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.