2017-04-19 14 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 = [私は[1,2]でiのために」は 'a 'に値を割り当て、 'b 'の値 – Wokpak

+1

最初の例で角括弧を省略したのはなぜですか?私は 'a、b = [int(i)in input()。split()]'があなたが望むことをしていると思います。 – 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

関連する問題