簡體   English   中英

如何使用 function 在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM