我不明白为什么在循环变量不发生变化,但我明确地尝试。因此,这里是我的代码:变量在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
我不明白为什么在循环变量不发生变化,但我明确地尝试。因此,这里是我的代码:变量在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
为了迭代i
何时改变a
,你必须将值赋给变量。
所以不是 for a in i: a*2 print(a)
尝试
for a in i: a = a*2 print(a)
因为你不分配值的变量。它会改变,如果你做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
>>>
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)
应打印'2 *了'不是 – lmiguelvargasf
你没有指定新价值的任何变量。用'a = a * 2'替换'a * 2'。 –
行'一* 2'被“丢失”的,它不会改变了''的价值。要做到这一点,你就需要重新分配或者'了'新值,通过做'A = A * 2'或只是打印做'打印* 2'期望值。此外,使用的是用于阵列和在第二循环中的内变量两个变量'A'。不惜一切代价避免这种情况。 – dabadaba