2017-02-04 10 views
-2

Ich kann nicht verstehen, warum in Schleife Variable nicht ändern, aber ich versuche es explizit. So, hier ist mein Code:Variable in Schleife auf Python nicht ändern

a=[1,2,3] 
b=["a","b","c"] 
d=[a,b] 
for i in d: 
    for a in i: 
     a*2 
     print(a) 

Und wenn ich laufe ich sehe:

1 
2 
3 
a 
b 
c 

Stattdessen erwartet:

2 
4 
6 
aa 
bb 
cc 
+0

Sie '2 * a' kein – lmiguelvargasf

+0

Sie sind nicht den neuen Wert zu jeder Variablen zugewiesen gedruckt werden soll. Ersetzen Sie "a * 2" durch "a = a * 2". –

+0

Die Zeile 'a * 2' wird" verloren ", sie ändert nicht den Wert von' a'. Um dies zu tun, müssen Sie entweder den neuen Wert "a" zuweisen, indem Sie "a = a * 2" eingeben oder einfach den gewünschten Wert drucken, indem Sie "a * 2" drucken. Außerdem verwenden Sie die Variable "a" für das Array und die innere Variable in der zweiten Schleife. Vermeiden Sie dies um jeden Preis. – dabadaba

Antwort

0

Um die a zu ändern, wenn i Iterieren Sie den Wert der Variablen zugewiesen werden müssen.

so statt for a in i: a*2 print(a)

versuchen

for a in i: a = a*2 print(a)

0

Weil Sie nicht Wert auf die Variable zuweisen. Es ändert sich, wenn Sie a = a * 2 statt nur a * 2 machen. Versuchen Sie, dies in Python-Shell:

>>> a=[1,2,3] 
>>> b=["a","b","c"] 
>>> d=[a,b] 
>>> for i in d: 
...  for a in i: 
...   a=a*2 
...   print(a) 
... 
2 
4 
6 
aa 
bb 
cc 
>>> 
0
a=[1,2,3] 
b=["a","b","c"] 
d=[a,b] 
for i in d: 
    for a in i: 
     a=a*2 # change this line like that 
     print(a)