python“ all”函数使列表为空

时间:2018-09-26 15:42:57

标签: python python-3.x

我是python的新手,正在学习其内置函数,但是函数all() 表现不正常,我不知道为什么。这是我的代码

n=map(int,input().strip().split())
print(all([j>0 for j in n]))
print(list(n)) #this line returning empty list

这是我的输入内容:

1 2 3 4 5 -9

我的输出:

False

函数是否都会更改原始地图对象(值)?但是在docs链接上的给定函数定义中未提及类似内容。

预先感谢

1 个答案:

答案 0 :(得分:2)

Map返回您在all函数中耗尽的生成器对象。因此,当您在list上调用n时,由于n为空/已用尽,它将返回一个空列表。

要解决此问题,请首先将n列为列表。

n=list(map(int,input().strip().split()))
print(all([j>0 for j in n]))
print(n)