Внесение изменений на месте в списках Python - PullRequest
0 голосов
/ 27 октября 2019

Я хочу внести изменения в список на месте так, чтобы, если список был l1 = [0, 1, A, B], то я мог заменить буквенные значения числами.

Я попытался использовать для него следующий код:

for x in l1:
    if x == 'A':
        x = 10

Однако, когда я снова смотрю на список, он все тот же, и A не был изменен на 10. Почему этот код не работает?

Я пытался использовать индексывместо этого, но это тоже не сработало.

for i in range(len(l1)):
     if l1[i] == 'A':
        l1[i] = 10

1 Ответ

1 голос
/ 27 октября 2019

В Python вещи всегда передаются по значению. Переменная 'x' в цикле for является копией элементов в списке, а не указателем / ссылкой на элементы списка.

Вы можете изменить значение списка, непосредственно проиндексировав его.

Один из способов добиться этого заключается в следующем.

для i, x в перечислении (l1): Если x == 'A': l1 [i] = 10

Предполагается, что переменная указывает на значение 'A'!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...