2014-11-04 3 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' как имя переменной. –

+1

Как могла первая попытка работать, вы изменяете каждый 'элемент' не каждый« элемент списка » –

+0

Woops, забыл об этом, спасибо –

ответ

2

element является локальной переменной и присваивается только к текущему элементу списка.

Во втором случае list[element] присваивается список, в котором element указывает на текущий индекс списка.

0

Вы не обновляете список. Вы просто обновляете элементную переменную.

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

Это ответ, но не на заданный вопрос. – Korem

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – Philio

+0

независимо от того, что вы не отвечаете, спасибо, это действительно полезно –

Смежные вопросы