Изменение списка python
Можете ли пояснить, почему в коде (написан для примера) вроде всё логически нормально, но по итогу список не изменяется. При этом если использовать обращение через индекс посредством Items.index(Item) то всё работает. Вроде как код написанный ниже должен работать и так, где я ошибся?
Items = ["weapon","offhand","helmet","boots","belt","offhand","gloves","bonus"]
for Item in Items:
Item += "1234"
print(Items)
Заранее спасибо.
Ответы (1 шт):
Вариант обновления списка без индексов. Так как список хранит строки, а строки неизменны, то в обычном цикле for Item in Items: обновить список нельзя. Можно создать новый временный и заместить элементы старого. Вот так:
Items = ["weapon","offhand","helmet","boots","belt","offhand","gloves","bonus"]
Items[:] = [Item + "1234" for Item in Items]
Важно понимать разницу между Items = и Items[:] = . Первое присваивание удаляет старый список и присваивает переменной новый. Второе присваивание в старом списке изменяет элементы. Сам список не удаляется.