簡體   English   中英

使用 for 循環從列表創建過濾列表

[英]Create a filtered list from a list with a for loop

我想創建一個函數,該函數從帶有 for 循環的列表中創建一個新列表。 在新的 List 中應該只是 int 並且在 1 到 49 的范圍內浮動。

喜歡:

filter_list[2,3,55,"test",10]=[2,3,10]

如何使用 for 循環創建這樣的列表?

編輯:到目前為止我的代碼:

def filter_list(elements):
    list = []
    for i in elements:
        if i in range(1,50):
            list.append(i)
    return list

但是當我想證明它是 int 還是 float 時

isinstance(i,str)

它可能不起作用

您可以使用filter

def filter_list(l):
    return list(filter(lambda x: (isinstance(x, int) or isinstance(x, float)) and 1 <= x <= 49, l))

對於python2,您不需要將filter的結果轉換為列表。 但是對於python3,您需要進行轉換。

你會這樣稱呼它:

>>> filter_list([2,3,55,"test",10])
[2, 3, 10]

或者簡單地使用列表理解:

def filter_list(l):
    return [x for x in l if (isinstance(x, int) or isinstance(x, float)) and 1 <= x <= 49]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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