2017-04-19 128 views
0
a,b = int(i) for i in input().split() 

有人可以解释为什么上面的代码不起作用吗?在python中使用for循环输入

我明白,我可以用它来制作列表,如:

a = [int(i) for i in input().split()] 

但为什么没有2个值工作?如果运行时异常上升(传递超过2个值),则终止是完全合法的。但显示无效的语法。

+2

我不能回答你的问题,为什么你需要括号而不是'你做'但是'a,b = [i for i in [1,2]]'does does a value to a'and一个值给'b' – Wokpak

+1

为什么你在第一个例子中放下方括号?我认为'a,b = [int(i)for i in input().span()]'做你想做的事。 – FamousJameous

+1

参考[list comprehensions](https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions) – anshulk

回答

0

我刚查过。这些被称为发电机功能。并且可以将代码修改为:

a,b = (int(x) for x in input().split()) 

此外,也做同样的工作,而是它返回一个列表。然后迭代列表并将其分配给python结尾的变量。 (纠正我,如果我错了)

感谢大家谁回答! :D