Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458

Прямая замена текста

29.12.2017, 01:41. Показов 1863. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тему вернее бы назвать "Прямая замена элемента"
Есть ли в питоне способ позволяющий сделать прямую замену элемента?

ну например лист:

Python
1
lst=[[1,2,3],[4,5,6],[1,2,3]]
в нем все вхождения числа 2 заменить на "два" (т.е. без использования delete затем insert элемента):


Python
1
lst=[[1,"два",3],[4,5,6],[1,"два",3]]
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.12.2017, 01:41
Ответы с готовыми решениями:

Прямая замена
Шифрование и дешифрование методами замены (подстановки): Прямая (простая) замена.

AT89C2051 прямая замена
Подскажите плз, возможна ли прямая замена AT89C2051 на ATtiny2313 аппаратно и программно? Кроме инверсии ресета ессно.

Простая кодировка (прямая замена)
Помогите с такой задачей: А) Написать программу для шифрования текста, состоящего из букв русского алфавита, цифр, знаков препинания...

10
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
29.12.2017, 02:29
Python
1
2
3
4
5
6
7
8
9
10
>>> lst=[[1,2,3],[4,5,6],[1,2,3]]
>>> for i in lst:
    try:
        idx = i.index(2)
        i[idx] = 'two'
    except: pass
 
    
>>> lst
[[1, 'two', 3], [4, 5, 6], [1, 'two', 3]]
0
10 / 10 / 2
Регистрация: 07.12.2017
Сообщений: 40
29.12.2017, 05:19
Spisok[index] = value
spisok - имя списка
index - индекс элемента что нужно переопределить
value - новое значение
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
29.12.2017, 12:16  [ТС]
Цитата Сообщение от LiKin Посмотреть сообщение
Spisok[index] = value
spisok - имя списка
index - индекс элемента что нужно переопределить
value - новое значение
У меня так выдает ошибку на знаке "="

помогите верно написать по способу в цитате сверху, не могу сообразить

Python
1
2
3
4
5
lst=[[1,2,3],[4,5,6],[1,2,3]]
 
change=[   lst.index(i) ="два"     for i in lst  if 2 in i]
 
print(change)
0
10 / 10 / 2
Регистрация: 07.12.2017
Сообщений: 40
29.12.2017, 12:19
Цитата Сообщение от rar Посмотреть сообщение
change=[ * *lst[i] ="два" * lst * * for i in lst if 2 in i]
Потому что ты используешь списки включения.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
29.12.2017, 12:22  [ТС]
а что такое списки включения?

Добавлено через 58 секунд
Цитата Сообщение от LiKin Посмотреть сообщение
change=[ * *lst[i] ="два" * lst * * for i in lst if 2 in i]
у меня в питоне 2.7 звездочки эти не работают((
0
10 / 10 / 2
Регистрация: 07.12.2017
Сообщений: 40
29.12.2017, 12:33
Списковое включение wiki -> python
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
29.12.2017, 12:37  [ТС]
есть способ без использования звездочек? и без нимфи и скипи
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
29.12.2017, 12:42
Лучший ответ Сообщение было отмечено rar как решение

Решение

Python
1
2
3
4
5
6
7
8
lst=[[1,2,3],[4,5,6],[1,2,3]]
for index_A, line in enumerate(lst):
    for index_B, elem in enumerate(line):
        if elem == 2:
            lst[index_A][index_B] = "два"
            
print(lst)
[[1, 'два', 3], [4, 5, 6], [1, 'два', 3]]
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
29.12.2017, 12:47  [ТС]
Semen-Semenich,
Спасибо! работает

Покажите пожалуйста как будет выглядеть этот же код для следующего уровня вложенности:
Python
1
lst=[[[1,2,3],[4,5,6],[1,2,3]] , [[1,2,3],[4,5,6],[1,2,3]] , [[1,2,3],[4,5,6],[1,2,3]] ]
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
29.12.2017, 13:06
Лучший ответ Сообщение было отмечено rar как решение

Решение

да точно также только добавляется еще один цикл обработки и чем больше вложенность тем больше циклов
Python
1
2
3
4
5
6
7
8
9
10
>>> lst=[[[1,2,3],[4,5,6],[1,2,3]] , [[1,2,3],[4,5,6],[1,2,3]] , [[1,2,3],[4,5,6],[1,2,3]] ]
>>> elem_1 = lst[0] # первый цикл обрабатывает lst
>>> print(elem_1)
[[1, 2, 3], [4, 5, 6], [1, 2, 3]] # получаем список из элементов списков
>>> elem_2 = elem_1[0] # второй цикл обрабатывает elem_1
>>> print(elem_2)
[1, 2, 3] # получаем элементы которые состоят из списка
>>> elem_3 = elem_2[0] # третий цикл обрабатывет элемент-список
>>> print(elem_3) # получаем значения элементов
1
Python
1
2
3
4
5
6
7
8
9
10
11
lst=lst=[[[1,2,3],[4,5,6],[1,2,3]] , [[1,2,3],[4,5,6],[1,2,3]] , [[1,2,3],[4,5,6],[1,2,3]] ]
 
for index_A, line in enumerate(lst):
    for index_B, elem in enumerate(line):
        for index_C, val in enumerate(elem):
            if val == 2:
                lst[index_A][index_B][index_C] = "два"
            
print(lst)
[[[1, 'два', 3], [4, 5, 6], [1, 'два', 3]], [[1, 'два', 3], [4, 5, 6], [1, 'два', 3]],
[[1, 'два', 3], [4, 5, 6], [1, 'два', 3]]]
представь если список имеет под сотню вложенностей. поэтому лучший вариант мне кажется использовать функцию возможно рекурсивную но это уточнят тебе гуру питона а я так любитель
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2017, 13:06
Помогаю со студенческими работами здесь

Даны треугольник и прямая. Определить, пересекает ли прямая контур треугольника
Трудности с написанием алгоритма, который выполнял бы это условие.

Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая
Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая. Для К заданных прямых...

Структуры (Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая)
Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая. Для К заданных прямых вывести...

Поиск части текста в диапазоне ячеек и замена этого текста на найденное соответсвие
Имеется список адресов, которым нужно присвоить в отдельной ячейке название микрорайона. Есть отдельная таблица с названиями микрорайонов и...

Найти все значения p, при которых прямая пересекает ось абсцисс в той же точке, что и прямая L
Уважаемые форумчане! Может ли кто-нибудь помочь с решением следующей задачи по математике: "Найти все значения p, при которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru