2017-04-19 110 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