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

Дан список целых чисел. Заменить отрицательные на −1, положительные — на число 1, ноль оставить без изменений.

1-й вариант — заполнение нового списка в зависимости от значений исходного:

2-й вариант — замена элементов непосредственно в исходном списке:

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

1 ответ 1

Хотя лучше сделать так

Такой вариант подойдет и групповых замен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками python list или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Я не так давно начал изучать python и столкнулся с проблемой которую не могу решить. У меня есть 2 списка в каждом по 33 элемента и пользователь может ввести текст и программа должна пройтись по всех элементах первого списка и изменить элементы. Например: ( Берем например по 3 элемента

и если ввести abc вывод должен быть 123. Вроде-бы простая задача и не могу решить, решил уже зарегистрироваться у вас ;D

Спасибо за ответы буду разбираться.

3 ответа 3

Для каждого символа c из vvod вы тестируете, если он в списке list1 и затем узнаете его индекс i с помощью метода .index() .

Символ с тем самым индексом, но теперь из списка list2 , добавите в результатный список otvet методом .append() .

В конце концов трансформируете список otvet на строку использованием метода .join() на пустую строку (отделитель элементов) "" .

Читайте также:  Изменение размера динамического массива c

Можно заменить каждый элемент в списке, если он присутствует во вводе:

UPD: Сначала не заметил уточнения про несколько символов за раз.

Вот исправленный вариант:

Здесь в строчке inp_map = dict(zip(list1, list2)) создаётся из двух списков вот такой словарь:

В следующей строчке создаётся лямба-функция, которая принимает на вход строку и с помощью генераторного выражения разбивает её на буквы, каждую букву использует как ключ словаря inp_map и благодаря этому получает соответствующий символ второго списка. После чего с помощью метода join все эти символы обратно склеиваются вместе.

Ну и в последней строке просто применяется эта лямбда-функция применяется к введённому значению.