我想创建一个函数,该函数从带有for循环的列表中创建一个新列表。在新列表中,应该将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还是
浮动时isinstance(i,str)
可能不起作用
答案 0 :(得分:0)
您可以使用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]