2017-06-17 3 views
0

Ich kann nicht alle Elemente in der Liste hinzufügen. Nur letztes Element hinzugefügt. Wie kann ich alle eingegebenen Elemente hinzufügen?Element zur Liste nach Benutzer hinzufügen

N = input("Enter the number of elemets: ") 
for i in xrange(N): 
    N = [] 
    a = input('%d. Element: ' %(i+1)) 
    N.append(a)  
print N 
+0

Sie sollten ** nicht ** Setze die ganze Zeit 'N' zurück. –

+0

'N = []' leert die Liste bei jeder Iteration der 'for'-Schleife. Verschieben Sie die Zeile 'N = []', bevor Sie die 'for'-Schleife eingeben, und benennen Sie' N' in einen anderen Variablennamen um, der in der ersten Zeile noch nicht verwendet wird – davedwards

Antwort

1

Du N auf eine leere Liste Zurücksetzen auf jeder Iteration des for -loop, dann auf der letzten Iteration der letzte a Wert wird auf die leere Liste angehängt, so dass mit nur einem Eintrag in der Liste N Finishing .

Verwenden Sie auch eine andere Variable Namen für die Liste (nicht die gleiche Variable, die Sie für die Eingabe definiert N)

N = input("Enter the number of elemets: ") 
n = []     # use a different variable name for this list 
for i in xrange(int(N)): # cast N to integer 
    a = input('%d. Element: ' %(i+1)) 
    n.append(a)   # append to the list `n` not `N` 
print n     # print the list 

Probelauf:

Enter the number of elemets: 5 
1. Element: 3 
2. Element: 4 
3. Element: 6 
4. Element: 7 
5. Element: 8 
['3', '4', '6', '7', '8'] 
Verwandte Themen