2017-12-15 15 views
0

ユーザー入力から複数のキーと値のペアを辞書に追加したいとします。これは私が今持っているものです。複数のユーザー入力を辞書に追加する別の方法はありますか?

user = {} 
counter = 1 
for i in range(4): 
    letter, number = input('Pair {}: '.format(counter)).split() 
    user[letter] = int(number) 
    counter += 1 

出力:

user = {'a': 1, 'b': 2, 'c': 3, 'd': 4} 

それは動作しますが、私はこれを行うには良い方法があるかどうかを知りたいですか?

+0

https://codereview.stackexchange.com/ – Aemyl

答えて

3

いいね。あなたはrange(1, 5)を使用してcounterをインクリメント手動で回避できます

user = {} 
for counter in range(1, 5): 
    letter, number = input('Pair {}: '.format(counter)).split() 
    user[letter] = int(number) 

ワンライナー:

user = {letter: int(number) for letter, number in 
     (input('Pair {}: '.format(counter)).split() for counter in range(1, 5))} 

ワンライナーはかなり密であり、2つの物理回線に広がります。したがって、ループは読みやすくなります。

+0

に感謝の意を表すコードを改善するための質問ありがとう '+ 1'私は、ここ1ライナーがかなり密であることに同意しています。ループアプローチは読みやすいようです。好奇心のために私は尋ねた;-) –

+0

ありがとう。私はそれが辞書の理解のために可能であると思っていたが、私が思ったより読むことは難しい。 – Kingle

関連する問題