我有一個數字列表t。我想用10乘以該列表中的號碼爲什麼這個不行?:乘以10的數字列表
for i in t
i = i*10
我爲什麼要做這個?:
for i in range(len(t)):
t[i] = t[i]*10
我有一個數字列表t。我想用10乘以該列表中的號碼爲什麼這個不行?:乘以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中不起作用。
for .. in
構造的索引變量(您的i
)只是一個變量。在每次循環開始時,Python將in
序列中的相應值分配給循環的索引變量。就好像您有很多循環體的副本,並且在每個副本之前,您都會輸入一個賦值語句i = t[0]
,i = t[1]
等等。索引變量不記得它是從in
序列(您的t
)分配的。索引變量不是in
序列的相應值的等效名稱(「別名」)。更改索引變量不會影響in
序列。
python -c 't = [1, 2, 3]
for i in t:
i = 1
print t'
[1, 2, 3]
但是你不知道它是否是別名!是經常使用Python相比,另一種語言做工作的方式(報價手冊「perlsyn」):
如果列表的任何元素是左值,你可以通過修改環路內VAR修改。相反,如果LIST的任何元素不是左值,則任何修改該元素的嘗試都將失敗。換句話說,foreach循環索引變量是您正在循環的列表中每個項目的隱式別名。
所以:
perl -e '@t = (1, 2, 3); foreach $i (@t) { $i = 1; } print @t'
111
你是從每次循環迭代列表覆蓋每個號碼的副本。在這種情況下不會修改初始列表 – RomanPerekhrest
[如何將列表中的所有整數相乘]可能的重複(http://stackoverflow.com/questions/26446338/how-to-multiply-all-integers-inside-list ) – RomanPerekhrest