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

Для этого я использовал концепции индексации в Python. Однако в процессе разработки логики для этой функциональности я обнаружил два дополнительных подхода к замене элементов в списке, которыми, возможно, вам будет интересно ознакомиться.

Замена списка Python означает удаление элементов списка другими элементами. Проще говоря, если у вас есть список продуктов видаproducts=[«Камера», «Штатив», «Мобильный компьютер», «Ноутбук MSI»] и После замены продукта «Мобильный телефон» на «Планшет», ваш список должен выглядеть следующим образом: Products=[«Камера», «Штатив», «Планшет», «Ноутбук MSI»].

Вы только что заменили элемент списка «Мобильный телефон» новым элементом «Планшет». В этом уроке вы узнаете, как это сделать, используя несколько методов.

Содержание

С помощью индексации

Индексирование — это метод доступа к элементам списка по их позиции.

Например, если у нас есть список стран Country = [‘США’, ‘Канада’, ‘Бразилия’], то индекс 0 будет соответствовать ‘США’, индекс 1 — ‘Канада’, а индекс 2 — ‘Бразилия’.

Если мы хотим получить доступ ко второму элементу списка, то есть к ‘Канада’, мы можем использовать конструкцию Country[1].

country= ['USA', 'Canada', 'Brazil']
print(country[1])

Просмотр элемента перед заменой списка Python

Обратите внимание на результат. Он возвращает второй элемент списка. Если вам нужно получить доступ к третьему элементу, вы можете воспользоваться индексацией, например, так: country[2], где «country» — это список, а 2 — индекс третьего элемента.

Теперь вы понимаете, как работает индексация. Как я уже упоминал, вы можете заменять элементы в списке, используя индексацию. Сначала вам нужно получить доступ к элементу или элементам списка, которые вы хотите изменить, а затем присвоить им новое значение с помощью оператора равенства «=».

Синтаксис:

list_name[index_value]=new_items

Где:

  • list_name[index_value]=new_items: представляет конкретные элементы списка, которые вы хотите заменить. list_name — это имя списка, содержащего элементы или элементы, за которым следует квадратная скобка [], содержащая значение индекса.
    • Затем следует «=new_items», что означает присвоение нового значения с помощью оператора присваивания «=» указанному значению индекса.

Допустим, вы хотите заменить слово «Канада» на слово «Нью-Йорк». Для этого вы можете использовать синтаксис, описанный выше, как показано в коде ниже.

#Accessing the first items of the dictionary and replacing it with new value
country[1]='New York'

print(country)

Заменить элемент в списке Python с помощью индексации

Как вы можете видеть в выводе, второй элемент в списке стран заменяется новым элементом — «Нью-Йорк». Исходный список выглядит так: «[США, Нью-Йорк, Бразилия]».

Таким же образом вы можете получить доступ к любому элементу списка и заменить его на новое значение.

С помощью цикла For

Вы можете использовать цикл Python for для перебора элементов списка, заменяя соответствующие элементы новыми.

Например, предположим, что у вас есть список продуктов видаproducts=[«Камера», «Штатив», «Мобильный телефон», «Ноутбук MSI»]. Чтобы заменить «Ноутбук MSI» на новое значение «Ноутбук Air 15 MacOs», вы можете использовать цикл for ниже.

products=["Camera", "Tri-Pod", "Mobile", "MSI Laptop"]

for items in range(len(products)):
  if products[items] == "MSI Laptop":
    products[items] = "Air 15 MacOs Laptop"

print(products)

Заменить в списке Python с помощью цикла For

Обратите внимание на результат: пункт «Ноутбук MSI» в перечне продуктов заменён на «Ноутбук Air 15 MacOs».

Давайте рассмотрим часть кода, отвечающую за элементы в диапазоне от 0 до длины списка. Этот фрагмент запускает цикл, который проходит по всем элементам списка. Длина списка определяется с помощью функции len().

В нашем случае список содержит 4 элемента. Поэтому цикл проходит от 0 до 3. Эти числа представляют собой индексы каждого элемента в списке.

После этого эта строка ‘if Products[items] == «Ноутбук MSI»: проверяет, равно ли текущее значение «Ноутбук MSI».

  • Если это так, оно заменяет это значение, используя ‘products[items] = «Ноутбук Air 15 MacOs». В противном случае операция пропускается и повторяется до тех пор, пока в следующей итерации не будет найден «Ноутбук MSI».

С использованием нарезки

Нарезка — это метод, позволяющий выбрать часть последовательности, содержащей определённые элементы. Как вы знаете, список представляет собой последовательность элементов.

В этом случае мы будем использовать концепцию нарезки, чтобы выбрать элемент из диапазона и заменить его новым элементом или значением.

Если вы не совсем понимаете, как работает нарезка, рекомендую прочитать статью «Индексирование и нарезка в Python» в Руководствах по Python.

Давайте рассмотрим пример. Предположим, у вас есть список имён пользователей, например: user_name = [‘John’, ‘Mary’, ‘Bob’]

users_name = ['Patric', 'Richar', 'Grant', 'Riley', 'Tristan']

Теперь вам нужно заменить имя «Райли» на «Блейк». Для начала найдите индекс элемента или имени пользователя, который вы хотите заменить. Чтобы увидеть индекс элемента, вызовите метод index() и передайте ему элемент, индекс которого вы ищете. Это можно сделать следующим образом:

index_value = users_name.index("Riley")
print("Index of the Riley is:", index_value)

Поиск значения индекса элемента в списке для его замены

Обратите внимание на индекс пользователя «Райли», который равен 3. Теперь давайте используем концепцию среза, чтобы получить доступ к этому значению и заменить его на «Блейк». Вот как это можно сделать:

user_names = users_name[:index_value]+['Blake']+users_name[index_value+1:]
print(user_names)

Замена списка Python с использованием нарезки

В этом фрагменте кода происходит следующее:

  • Извлекаются все элементы списка, начиная с индекса, заданного переменной `index_value`, но не включая само это значение. То есть, если `index_value` равно 0, то будут выбраны элементы с индексами от 0 до 2 (не включая 0).
  • Затем к этим элементам добавляется строка `’Blake’`.
  • После этого все элементы, начиная с индекса, следующего за `index_value`, добавляются в конец списка. Это означает, что элементы с индексами, начиная с 4, будут объединены с помощью строки `’Blake’`.

В результате имя пользователя «Райли» заменяется на «Блейк», как можно увидеть в выводе.

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