@IntoTheSurf

Почему не сохраняются значения из цикла?

Здравствуйте)

S1 = 'Зайцы и пчелы прыгают по лужку'
lenght = 5
res = S1.split()

for i in res:
    if len(i) == lenght:
        i = i[:-3]
        print (i)

print(res)

Но есть вопрос - почему в res не сохраняется новое значение i которое мы изменили в цикле?
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
Привет, переменная i не ссылается на res. Каждую итерацию цикла i присваивается значение элемента из res.
Для того чтобы перезаписать значения в res, нужно непосредственно обращаться к res.
Например как-то так
S1 = 'Зайцы и пчелы прыгают по лужку'
lenght = 5
res = S1.split()

for i in range(len(res) - 1):
    if len(res[i]) == lenght:
        res[i] = res[i][:-3]
        print (res[i])

print(res)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
Потому что это не цикл перебора индекса списка с шагом (for i in range.....), а цикла перебора самих элементов списка, где в i записывается очередной элемент
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы