[英]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.