![](/img/trans.png)
[英]How can you filter between two lists using a function in Python?
[英]How do you filter in Python using a function?
我第一次使用过滤器 function 并使用 function 从名为 num_list 的元组中删除 del_num。 但是,它没有做我想要的。 我正在取回原始的 num_list 值。 欣赏有关如何使其发挥作用的任何想法。
num_list = [1,2,3,4,5,8,24,24,54,78]
del_num = 24
def filter_list(num_list, del_num):
new_num =[]
for v in num_list:
if (num_list) == (del_num):
return FALSE
else:
new_num.append(v)
return new_num
result = filter_list(num_list,del_num)
print(result)
一种方法是使用列表理解
num_list = [1,2,3,4,5,8,24,24,54,78]
del_num = 24
def filter_list(num_list,del_num):
return [num for num in num_list if num != del_num]
filtered_list = filter_list(num_list,del_num)
print(filtered_list)
对代码的整体结构进行最小的更改,但进行一些更改以使其正常工作:
num_list = [1,2,3,4,5,8,24,24,54,78]
del_num = 24
def filter_list(num_list, del_num):
new_num = []
for v in num_list:
if v != del_num:
new_num.append(v)
return new_num
result = filter_list(num_list,del_num)
print(result)
代码的return False
部分将脱离 function 并在满足条件时返回False
,这不是你想要的。 此外,您所做的相等性检查是将原始列表与要删除的数字进行比较。 if v == del_num
你应该这样做。 鉴于所有动作都发生在else
块中,最容易将等式变为不等式并完全摆脱else
块。
另请注意, boolean False 拼写为False
,而不是FALSE
(与其他一些语言不同)。
这是您要查找的内容:
num_list = [1,2,3,4,5,8,24,24,54,78]
del_num = 24
def filter_list(num_list, del_num):
new_num =[]
for v in num_list:
if (v) == (del_num):
pass
else:
new_num.append(v)
return new_num
结果 = filter_list(num_list,del_num)
打印(结果)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.