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

Lamda функция

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

Author24 — интернет-сервис помощи студентам
Ребят помоги сделать красивый код с использование функций высшего порядка.
Такой пример:
Есть два цикла которые принимают на вход строку ищут в ней совпадения по шаблону, далее находят индекс первого вхождения строки и делаю срез через 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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....

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

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

10
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
11.08.2017, 14:02 2
А какая цель? Что не устраивает в существующей имплементации и почему не подходит простая функция?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
11.08.2017, 14:34  [ТС] 3
ЦЕЛЬ: в место 13 строк кода сделать 1
0
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
11.08.2017, 16:16 4
Одна строка, как заказывали:
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
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
11.08.2017, 16:56 5
Это конечно офтоп, но для меня цель из 13 строк сделать одну звучит странно и слегка необоснованно. Что это вам позволит добиться? Кроме нечитаемости и сложности поддержки?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
14.08.2017, 13:29  [ТС] 6
Это позволит научиться делать лаконичный код. По поводу нечитаемости полностью согласен с Вами, но я и не стремлюсь сделать код таковым.
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
14.08.2017, 13:54 7
Ну хотя бы честно
Решение в регуляркой устраивает?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
21.08.2017, 13:51  [ТС] 8
регулярка немного не то что надо. в задании стоит найти по шаблону место в тексте удалить его и символ перед ней
0
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
21.08.2017, 15:56 9
Лучший ответ Сообщение было отмечено 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
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
21.08.2017, 16:06 10
Что в этом задании не совпадает с идеей регулярных выражений? Найти по шаблону (собственно для чего регулярные выражения и существуют) или заменить (специальная функция в re модуле, которая именно под это и заточена)?
0
0 / 0 / 1
Регистрация: 28.06.2016
Сообщений: 114
21.08.2017, 21:40  [ТС] 11
Всем спасибо , разобрался. регулярки это лучшее решение!)
0
21.08.2017, 21:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2017, 21:40
Помогаю со студенческими работами здесь

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

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

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

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

Функция проверки ввода как отдельная функция для других функций
Проверка на ввод - принимает значения вплоть до типа '2.3pi/1.05' или '5.6/pi'. Возможно, есть...

Функция sqrt: существует более одного экземпляра. Функция перегруженная
#include <iostream> #include <math.h> #include <iomanip> using namespace std; int main(){...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru