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