Как заменить элемент в списке python
Перейти к содержимому

Как заменить элемент в списке python

  • автор:

Замена элемента в списке по его индексу

В результате элемент с индексом i из последовательности sequence получит новое значение (заменится) на объект x .

Если индекс i отрицателен, то индекс будет считаться относительно конца последовательности sequence . В этом случае положительный индекс можно посчитать по формуле len(sequence) — i .

Обратите внимание, что -0 по-прежнему будет 0.

При попытке заменить значение элемента с индексом, превышающим длину последовательности len(sequence) поднимается исключение IndexError .

Эта операция поддерживаются изменяемыми типами последовательностей.

Примеры изменения элемента списка по индексу.

>>> x = [2, 5, 8, 11, 14, 17] >>> x[1] = 150 >>> x # [2, 150, 8, 11, 14, 17] >>> x[-1] = 100 >>> x # [2, 150, 8, 11, 14, 100] x = ['el_1', 'el_2', 'el_3'] >>> x[2] = 'lorem' >>> x # ['el_1', 'el_2', 'lorem'] # замена элемента неизменяемой # последовательности невозможна >>> x[3] = 'foo' # Traceback (most recent call last): # File "", line 1, in # IndexError: list assignment index out of range 

Замена элементов в списке по условию.

Например, имеем числовой список, в котором присутствуют как целые, так и вещественные числа. Необходимо получить тот же список, в котором вещественные числа округлены до целых.

В данном случае можно поступить 2-мя способами: первый — это создать новый пустой список и в цикле for/in добавлять в него значения, округляя все элементы до целого, из первого списка. Недостаток такого способа: если список огромный то столкнемся с не экономным расходом памяти.

Второй подход — это при каждой итерации по списку, проверять тип числа и если это вещественное число то округлять его до целого и на лету изменять значение в списке по его индексу. Недостаток: скорость обработки списка незначительно уменьшиться.

# имеем числовой список lst = [1, 5.5, 3, 8.2, 11.1, 10, 4, 5.6, 9] # используем функцию `enumerate()` # для определения индекса элемента # при каждой итерации for n, i in enumerate(lst, 0): # проверяем тип числа if type(i) == float: # если float, то округляем i = round(i) # изменяем элемент по индексу lst[n] = i >>> lst # [1, 6, 3, 8, 11, 10, 4, 6, 9] 

Замена элементов вложенных списков.

>>> x = [[2, 150], [11, 14, 17]] >>> x[0] = [0, 0] >>> x # [[0, 0], [11, 14, 17]] >>> x[1][1] = 1000 >>> x # [[0, 0], [11, 1000, 17]] >>> x[0][1] = 'foo' >>> x # [[0, 'foo'], [11, 1000, 17]] >>> x[1] = 'replace' >>> x # [[0, 'foo'], 'replace'] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Изменение/замена элемента списка по индексу
  • Изменение части списка операцией среза
  • Изменение списка срезом c заданным шагом
  • Удаление части списка операцией среза
  • Удаление части списка по срезу с заданным шагом
  • Метод list.append(), добавляет значение в конец списка
  • Метод list.clear(), очищает список
  • Метод list.copy(), копия списка
  • Метод list.extend(), расширяет список другой последовательностью
  • Расширение списка его содержимым
  • Метод list.insert(), вставить элемент по индексу
  • Метод list.pop(), получение с удалением элемент списка
  • Метод list.remove(), удаление элемента списка по значению
  • Метод list.reverse(), разворачивает элементы списка
  • Удаление элемента списка по индексу
  • Удаление дубликатов из списка Python с сохранением очередности

Как заменить значения в списке в Python

Часто вас может заинтересовать замена одного или нескольких значений в списке в Python.

К счастью, это легко сделать в Python, и в этом руководстве дается несколько различных примеров того, как это сделать.

Пример 1. Замена одного значения в списке

Следующий синтаксис показывает, как заменить одно значение в списке в Python:

#create list of 4 items **x = ['a', 'b', 'c', 'd'] #replace first item in list **x[ 0 ] = 'z' #view updated list **x ['z', 'b', 'c', 'd'] 

Пример 2. Замена нескольких значений в списке

Следующий синтаксис показывает, как заменить несколько значений в списке в Python:

#create list of 4 items **x = ['a', 'b', 'c', 'd'] #replace first three items in list **x[ 0:3 ] = ['x', 'y', 'z'] #view updated list **x ['x', 'y', 'z', 'd'] 

Пример 3. Замена определенных значений в списке

Следующий синтаксис показывает, как заменить определенные значения в списке в Python:

#create list of 6 items y = [1, 1, 1, 2, 3, 7] #replace 1's with 0's y = [0 if x==1 else x for x in y] #view updated list y [0, 0, 0, 2, 3, 7] 

Вы также можете использовать следующий синтаксис для замены значений, превышающих определенный порог:

#create list of 6 items y = [1, 1, 1, 2, 3, 7] #replace all values above 1 with a '0' y = [0 if x>1 else x for x in y] #view updated list y [1, 1, 1, 0, 0, 0] 

Точно так же вы можете заменить значения, которые меньше или равны некоторому порогу:

#create list of 6 items y = [1, 1, 1, 2, 3, 7] #replace all values less than or equal to 2 a '0' y = [0 if x 

Найдите больше руководств по Python здесь .

Заменить один элемент списка на другой python

Хочу заменить введенное имя на уже существующее в списке. Почему-то не заменяется. В чем ошибка подскажите пожалуйста.

names = ['Сергей', 'Маша', 'Алена', 'Игорь'] n_name = input('Введите имя, которое хотите изменить: ') if n_name in names: new_n_name = input('Введите имя, на которое хотите поменять: ') for n, i in enumerate(names): if i == new_n_name: names[n] = new_n_name print('Новый список контактов выглядит так: \n'.format(names)) 

Отслеживать

задан 5 июн 2019 в 19:18

Vasya Pupkin Vasya Pupkin

111 1 1 золотой знак 3 3 серебряных знака 12 12 бронзовых знаков

Потому что у вас в условии прописано заменить тот элемент в списке, который совпадает с новым именем. Но, очевидно, нового имени в списке ещё нет, поэтому и сравнение никогда не срабатывает.

5 июн 2019 в 19:25

@andreymal я сделал names.append(new_n_name) , но не помогло. Можете показать как именно?

Как сделать замену в списке в Python: полезные советы и инструкции

Чтобы заменить элемент в списке Python, вы можете использовать метод replace() вместе с индексом элемента, который вы хотите заменить и новым значением.

список = [1, 2, 3, 4, 5] индекс = 2 новое_значение = 10 список[индекс] = новое_значение print(список)

В приведенном примере мы заменили элемент с индексом 2 на новое значение 10. Вы также можете использовать срезы для замены нескольких элементов в списке. Например:

список = [1, 2, 3, 4, 5] индексы = [1, 3] новые_значения = [10, 20] for индекс, новое_значение in zip(индексы, новые_значения): список[индекс] = новое_значение print(список)

В этом примере мы заменили элементы с индексами 1 и 3 на новые значения 10 и 20 соответственно.

Детальный ответ

Как сделать replace в списке Python

Метод replace() в Python позволяет заменить все вхождения определенного значения в списке на другое значение. Это очень удобно, когда вам нужно обновить определенные элементы списка без изменения его структуры. Вот пример использования replace() для замены значения в списке:

 my_list = [1, 2, 3, 4, 5] old_value = 3 new_value = 6 for i in range(len(my_list)): if my_list[i] == old_value: my_list[i] = new_value print(my_list) 
  1. Задайте список my_list с элементами [1, 2, 3, 4, 5].
  2. Установите значения old_value равным 3 и new_value равным 6.
  3. Используйте цикл for для перебора всех элементов списка.
  4. Проверьте, равен ли текущий элемент значению old_value .
  5. Если равен, замените его на значение new_value .
  6. Выведите список my_list с обновленными значениями.

После выполнения кода выше, вы получите список [1, 2, 6, 4, 5] , где значение 3 было заменено на значение 6.

Вы также можете использовать метод replace() на месте конкретного индекса в списке:

 my_list = [1, 2, 3, 4, 5] index = 2 new_value = 6 my_list[index] = new_value print(my_list) 

Этот код заменяет элемент списка с индексом 2 (третий элемент) на значение 6. Результатом будет список [1, 2, 6, 4, 5] .

Что стоит запомнить?

  • Метод replace() позволяет заменить все вхождения определенного значения в списке.
  • Вы можете использовать цикл for , чтобы перебирать и заменять значения в списке.
  • Вы также можете использовать индексацию списка для замены значения в определенном индексе.
  • После выполнения замены, список будет содержать обновленные значения.

Теперь, используя метод replace() , вы можете легко обновлять значения в списках Python.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *