2017-12-15 3 views
0

Ich möchte mehrere Schlüssel-Wert-Paare von Benutzereingaben zu einem Wörterbuch hinzufügen. Das ist, was ich habe jetzt:Alternative Methoden zum Hinzufügen mehrerer Benutzereingaben zum Wörterbuch?

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

Ausgang:

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

Es funktioniert, aber ich möchte wissen, ob es einen besseren Weg, dies zu tun?

+0

Fragen über die Verbesserung von Code, der bereits funktioniert sollte tatsächlich gefragt werden auf https://codereview.stackexchange.com/ – Aemyl

Antwort

3

Sieht gut aus.

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

One-Liner:

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

Der Einzeiler ziemlich dicht ist und erstreckt sich über zwei physikalische Leitungen können Sie manuell counter durch range(1, 5) mit Inkrementieren vermeiden. Daher scheint die Schleife leichter zu lesen.

+0

Dank '+ 1' Ich stimme zu, dass One-Liner ist hier ziemlich dicht, und Loop-Ansatz scheint leichter zu lesen. Nur aus Neugier habe ich gefragt ;-) –

+0

Danke. Ich habe überlegt, ob es für ein Wörterbuchverständnis möglich ist, aber es ist schwerer zu lesen als ich dachte. – Kingle

Verwandte Themen