Python 3.x 将数字列表乘以10

Python 3.x 将数字列表乘以10,python-3.x,Python 3.x,我有一个数字列表。我想把清单上的数字乘以10。为什么这不起作用 for i in t i = i*10 我为什么要这么做 for i in range(len(t)): t[i] = t[i]*10 嗯,它不起作用,因为这不是正确的语法。然而,你可以用一个列表来清理一些东西: t = [x * 10 for x in t] 在Python中它不是这样工作的 的的索引变量(您的i)。。在中,构造只是一个变量。在循环的每次传递开始时,Python将序列中的中的相应值分配给循环

我有一个数字列表。我想把清单上的数字乘以10。为什么这不起作用

for i in t
     i = i*10
我为什么要这么做

for i in range(len(t)):
    t[i] = t[i]*10

嗯,它不起作用,因为这不是正确的语法。然而,你可以用一个列表来清理一些东西:

t = [x * 10 for x in t]

在Python中它不是这样工作的

的索引变量(您的
i
)。。在
中,构造只是一个变量。在循环的每次传递开始时,Python将序列中的
中的相应值分配给循环的索引变量。这就好像你有很多循环体的副本,在每个副本之前你都放了一个赋值语句
i=t[0]
i=t[1]
,等等。索引变量不记得它是从序列中的
赋值的(您的
t
)。索引变量不是序列中
对应值的等效名称(“别名”)。更改索引变量不会影响序列中的

python -c 't = [1, 2, 3]
for i in t:
   i = 1
print t'
[1, 2, 3]
但你怀疑这是不是化名并没有错!另一种经常与Python相比较的语言就是这样工作的(引用手册页面“perlsyn”):

如果列表中的任何元素是左值,可以通过在循环中修改VAR来修改它。相反,如果列表中的任何元素不是左值,任何修改该元素的尝试都将失败。换句话说,foreach循环索引变量是列表中要循环的每个项目的隐式别名

因此:


在每次循环迭代中覆盖列表中每个数字的副本。在这种情况下,不会修改初始列表,因为可能会重复
perl -e '@t = (1, 2, 3); foreach $i (@t) { $i = 1; } print @t'
111