2017-02-04 267 views
-2

我不明白为什么在循环变量不发生变化,但我明确地尝试。因此,这里是我的代码:变量在Python的循环不改变

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

当我跑我看到:

1 
2 
3 
a 
b 
c 

而是预期:

2 
4 
6 
aa 
bb 
cc 
+0

应打印'2 *了'不是 – lmiguelvargasf

+0

你没有指定新价值的任何变量。用'a = a * 2'替换'a * 2'。 –

+0

行'一* 2'被“丢失”的,它不会改变了''的价值。要做到这一点,你就需要重新分配或者'了'新值,通过做'A = A * 2'或只是打印做'打印* 2'期望值。此外,使用的是用于阵列和在第二循环中的内变量两个变量'A'。不惜一切代价避免这种情况。 – dabadaba

回答

0

为了迭代i何时改变a,你必须将值赋给变量。

所以不是 for a in i: a*2 print(a)

尝试

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

0

因为你不分配值的变量。它会改变,如果你做a = a * 2,而不只是一个* 2。在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)