l=['Python', 3, 2, 4, 5, 'version']
l=filter(lambda x:type(x)==int,l)
print(list(l))
print(max(l))
Run Code Online (Sandbox Code Playgroud)
收到此错误,但我不知道为什么.. ValueError: max() arg 是一个空序列
如果我不打印 list(l) 它将起作用..
l=['Python', 3, 2, 4, 5, 'version']
l=filter(lambda x:type(x)==int,l)
print(max(l))
Run Code Online (Sandbox Code Playgroud)
输出:5
打印过滤器对象的列表后它不起作用,我不知道你为什么能帮我?任何修复?
filter返回一个迭代器。调用后list(l),迭代器耗尽,因此您无法从中提取更多值。
你可以试试这个,看看:
l = ['Python', 3, 2, 4, 5, 'version']
l = filter(lambda x: type(x) == int, l)
print(list(l))
print(list(l))
Run Code Online (Sandbox Code Playgroud)
第二个打印语句给出了空列表:
[3, 2, 4, 5]
[]
Run Code Online (Sandbox Code Playgroud)
这会起作用:
[3, 2, 4, 5]
[]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |