Когда я создавал приложение для управления студентами на Python, мне нужно было реализовать функцию обновления оценок учащихся в случае, если оценки были исправлены или пересмотрены и хранились в списке.
Для этого я использовал концепции индексации в Python. Однако в процессе разработки логики для этой функциональности я обнаружил два дополнительных подхода к замене элементов в списке, которыми, возможно, вам будет интересно ознакомиться.
Замена списка Python означает удаление элементов списка другими элементами. Проще говоря, если у вас есть список продуктов видаproducts=[«Камера», «Штатив», «Мобильный компьютер», «Ноутбук MSI»] и После замены продукта «Мобильный телефон» на «Планшет», ваш список должен выглядеть следующим образом: Products=[«Камера», «Штатив», «Планшет», «Ноутбук MSI»].
Вы только что заменили элемент списка «Мобильный телефон» новым элементом «Планшет». В этом уроке вы узнаете, как это сделать, используя несколько методов.
С помощью индексации
Индексирование — это метод доступа к элементам списка по их позиции.
Например, если у нас есть список стран Country = [‘США’, ‘Канада’, ‘Бразилия’], то индекс 0 будет соответствовать ‘США’, индекс 1 — ‘Канада’, а индекс 2 — ‘Бразилия’.
Если мы хотим получить доступ ко второму элементу списка, то есть к ‘Канада’, мы можем использовать конструкцию Country[1].
country= ['USA', 'Canada', 'Brazil'] print(country[1])
Обратите внимание на результат. Он возвращает второй элемент списка. Если вам нужно получить доступ к третьему элементу, вы можете воспользоваться индексацией, например, так: 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)
Как вы можете видеть в выводе, второй элемент в списке стран заменяется новым элементом — «Нью-Йорк». Исходный список выглядит так: «[США, Нью-Йорк, Бразилия]».
Таким же образом вы можете получить доступ к любому элементу списка и заменить его на новое значение.
С помощью цикла 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)
Обратите внимание на результат: пункт «Ноутбук 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)
В этом фрагменте кода происходит следующее:
- Извлекаются все элементы списка, начиная с индекса, заданного переменной `index_value`, но не включая само это значение. То есть, если `index_value` равно 0, то будут выбраны элементы с индексами от 0 до 2 (не включая 0).
- Затем к этим элементам добавляется строка `’Blake’`.
- После этого все элементы, начиная с индекса, следующего за `index_value`, добавляются в конец списка. Это означает, что элементы с индексами, начиная с 4, будут объединены с помощью строки `’Blake’`.
В результате имя пользователя «Райли» заменяется на «Блейк», как можно увидеть в выводе.