Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114

Lamda функция

11.08.2017, 12:40. Показов 1349. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помоги сделать красивый код с использование функций высшего порядка.
Такой пример:
Есть два цикла которые принимают на вход строку ищут в ней совпадения по шаблону, далее находят индекс первого вхождения строки и делаю срез через replace и все это дело крутится в цикле пока s не будер равен -1 .
хочу тоже самое сделать только через лямду и кормить ей:
1. саму строку
2. шаблон(для поиска) + шаблон для среза в зависимости от запроса будут менятся координаты среза.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
        while True:
            s = content.find('[11]')
            if s != -1:
               content = content.replace(content[s-1:s+2],'')
            else:
                break
 
        while True:
            s = content.find('[1]')
            if s != -1:
               content = content.replace(content[s-1:s+3],'')
            else:
                break
накидал примерно такой код но не могу заставить его работать.

Python
1
        content = map(lamda x, y: (x.replace(x[x.find(y)-1:x.find(y)+5],'') if x.find(y) != -1 else break), content, filtr)

1.Не понятно как включить цикл while в lamda и как передать шаблон для сраза в зависимости от шаблонка поиска
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2017, 12:40
Ответы с готовыми решениями:

Сортировка с применением анонимной функции lamda
В папке лежит некоторое количество файлов. Считайте, что их количество и имена вам заранее известны, пример для выполнения домашней работы...

Решение при lamda=0
X''(x)+lamda X(x)=0 X(0)=0, X(l)=0 При lamda=0 общее решение уравнения имеет вид: X(x)=C+Dx. Вопрос: Dx откуда появится x

Сотрудник Google заявил, что ИИ LaMDA обрёл сознание
http://ai-news.ru/2022/06/sotrudnik_google_zayavil_chto_nashel_priznaki_soznaniya_u_sozdanno.html Сотрудник Google заявил, что нашел...

10
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
11.08.2017, 14:02
А какая цель? Что не устраивает в существующей имплементации и почему не подходит простая функция?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
11.08.2017, 14:34  [ТС]
ЦЕЛЬ: в место 13 строк кода сделать 1
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
11.08.2017, 16:16
Одна строка, как заказывали:
Python
1
2
3
4
5
6
import re
 
t = '[11] vdh  bhj bhbjbjb [1]fjvnfvndfk[111]vfvd'
 
t = re.sub(r'\[1{1,2}\]', '', t)
print(t)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
11.08.2017, 16:56
Это конечно офтоп, но для меня цель из 13 строк сделать одну звучит странно и слегка необоснованно. Что это вам позволит добиться? Кроме нечитаемости и сложности поддержки?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
14.08.2017, 13:29  [ТС]
Это позволит научиться делать лаконичный код. По поводу нечитаемости полностью согласен с Вами, но я и не стремлюсь сделать код таковым.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
14.08.2017, 13:54
Ну хотя бы честно
Решение в регуляркой устраивает?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
21.08.2017, 13:51  [ТС]
регулярка немного не то что надо. в задании стоит найти по шаблону место в тексте удалить его и символ перед ней
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.08.2017, 15:56
Лучший ответ Сообщение было отмечено Victoros6666 как решение

Решение

Пф...
Python
1
2
3
4
5
6
#!/usr/bin/env python3
import re
 
t = '[11] vdh  bhj bhbjbjb z[1]fjvnfvndfk[111]vfvd'
print(re.sub(r'.?\[1{1,2}\]', '', t))
print(re.sub(r'.\[1{1,2}\]', '', t))
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.08.2017, 16:06
Что в этом задании не совпадает с идеей регулярных выражений? Найти по шаблону (собственно для чего регулярные выражения и существуют) или заменить (специальная функция в re модуле, которая именно под это и заточена)?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
21.08.2017, 21:40  [ТС]
Всем спасибо , разобрался. регулярки это лучшее решение!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2017, 21:40
Помогаю со студенческими работами здесь

Найти мощность пересечения множеств L, M. Где L-линейная функция, а M-монотонная функция
Найти мощность пересечения множеств L, M. Где L-линейная функция, а M-монотонная функция

Задана показательная функция. Проверить, является ли функция возрастающей или убывающей
Задана показательная функция y=a^x. Проверить, является ли функция возрастающей ( при a>1)или убывающей (при 0 ≤ a ≤ 1)....

Базовый интерфейс, функция вывода звука, функция для просчёта выражения
ОЧЕНЬ НУЖНА ПОМОЩЬ! Нужно реализовать программу, которая по нажатию клавиши, а после "enter" выполняла такие функции: ...

Запрос для формирования сводной таблицы + функция SUM + функция IFNULL
Сформирован запрос, который включает в себя формирование сводной таблицы и функцию SUM. Не получается применить функцию IFNULL, возникают...

Функция поиска в массиве и указатели + функция сортировки и поиск найденного элемента
Написать функцию поиска максимального элемента, передать в неё указатель на начало и конец поиска и возвращать указатель на найденный...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru