2014-11-04 39 views
0

我有一個列表['1', '2', '3', '4'] 並且我想將它轉換爲以下值:['1.0', '2.0', '3.0', '4.0']。 在下面的代碼中,爲什麼第二次嘗試工作,而不是第一次?'for'循環中的列表中的字符串賦值

>>> list = ['1', '2', '3', '4'] 
>>> for element in list: 
...  element = element + '.0' 
... 
>>> print(list) 
['1', '2', '3', '4'] 
>>> for element in range(len(list)): 
...  list[element] = list[element] + '.0' 
... 
>>> print(list) 
['1.0', '2.0', '3.0', '4.0'] 
+1

不要使用'list'作爲變量名。 – 2014-11-04 11:35:54

+1

怎麼可能有第一次嘗試工作,你正在修改每個元素'不是每個'列表元素' – 2014-11-04 11:36:33

+0

Woops,忘了這一點,謝謝 – 2014-11-04 11:36:59

回答

2

element是局部變量,只分配給列表的當前元素。

在第二種情況下list[element]被分配到列表中,其中element指向當前的列表索引。

0

您未更新列表。你只需更新元素變量。

0
new_list = [x + '.0' for x in old_list] 
+0

這是一個答案,但不是問的問題。 – Korem 2014-11-04 12:21:27

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – Philio 2014-11-04 12:41:32

+0

不管是不是答案,謝謝,這真的有幫助 – 2014-11-04 12:45:47