Существуют следующие методы замены значения в списке в Python.
Способ 1: Индексация списка
Чтобы заменить значение в списке Python, вы можете использовать индексацию списка. Вы можете получить доступ к определенному элементу в списке по его индексу и присвоить этому индексу новое значение.
Пример
|
1 2 3 4 5 6 |
my_list = [1, 2, 3, 4, 5] index_to_replace = 2 new_value = 99 my_list[index_to_replace] = new_value print("Updated list:", my_list) |
Выход
|
1 |
Updated list: [1, 2, 99, 4, 5] |
Способ 2: Использование понимания списка
Вы можете использовать понимание списка, чтобы заменить элемент в списке Python. Чтобы заменить строку в списке Python, вы можете использовать комбинацию понимания списка + string replace().
Пример 1
|
1 2 3 4 5 6 7 8 9 10 11 |
data = ['Python', '5', 'Golang', '4', 'PHP', '3'] # printing data list print("The original list : " + str(data)) # using list comprehension + replace() # Replace substring in list of strings res = [item.replace('4', '5') for item in data] # print result print("The list after substring replacement : " + str(res)) |
Выход
|
1 2 3 |
The original list : ['Python', '5', 'Golang', '4', 'PHP', '3'] The list after substring replacement : ['Python', '5', 'Golang', '5', 'PHP', '3'] |
Мы определили список Python, а затем использовали понимание списка, чтобы заменить 4 на 5, вернуть новый список, а затем распечатать список. Метод String replace() заменяет указанную фразу другой.
Пример 2
Давайте посмотрим на другой пример замены строки Golang на Go.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
data = ['Python', '5', 'Golang', '4', 'PHP', '3'] # printing data list print("The original list : " + str(data)) # using list comprehension + replace() # Replace substring in list of strings res = [item.replace('Golang', 'Go') for item in data] # print result print("The list after string replacement : " + str(res)) |
Выход
|
1 2 3 |
The original list : ['Python', '5', 'Golang', '4', 'PHP', '3'] The list after string replacement : ['Python', '5', 'Go', '4', 'PHP', '3'] |
Если ничего конкретного не указано, будут заменены все вхождения указанной фразы.
Способ 3: использование функции enumerate() и понимания списка
Использование функции enumerate() с пониманием списка — это краткий и эффективный способ замены значения в списке на основе его индекса. Функция enumerate() позволяет перебирать список элементов и их индексов.
|
1 2 3 4 5 6 |
my_list = [1, 2, 3, 4, 5] index_to_replace = 2 new_value = 99 my_list = [new_value if index == index_to_replace else item for index, item in enumerate(my_list)] print("Updated list:", my_list) |
Выход
|
1 |
Updated list: [1, 2, 99, 4, 5] |
Способ 4: использование map() + lambda + replace()
Используйте комбинацию функций map(), лямбда-функции и функции string replace(), чтобы заменить строку другой строкой в списке.
Пример
|
1 2 3 4 5 6 7 8 9 10 11 |
data = ['Python', '5', 'Golang', '4', 'PHP', '3'] # printing data list print("The original list : " + str(data)) # using map() + lambda + replace() # Replace string in list of strings res = list(map(lambda st: str.replace(st, "PHP", ".NET"), data)) # print result print("The list after string replacement : " + str(res)) |
Выход
|
1 2 3 |
The original list : ['Python', '5', 'Golang', '4', 'PHP', '3'] The list after string replacement : ['Python', '5', 'Golang', '4', '.NET', '3'] |
В приведенном выше коде мы определили список, а затем использовали функцию map(), чтобы заменить строку PHP строкой .Net и преобразовать этот итератор в список с помощью функции list().
Способ 5: Использование цикла for
|
1 2 3 4 5 6 7 8 9 |
main_list = [1, 2, 3, 4, 5] old_value = 3 new_value = 99 for index, item in enumerate(main_list): if item == old_value: main_list[index] = new_value print("Updated list:", main_list) |
Выход
|
1 |
Updated list: [1, 2, 99, 4, 5] |
