The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Утверждено добавление в Python операторов для сопоставления с образцом, opennews (?), 09-Фев-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


206. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от economist (?), 10-Фев-21, 14:47 
В красоте однострочников посоревнуемся? 1-строчник - чтобы нивелировать разницу в ЯП. Начну:

Задание1: x = ' 123 БОЛЬШИЕ_м4ал5ен6ькие78 9' # -> '123456789'

На Python: print(''.join(i for i in x if i.isdigit()))  

Ответить | Правка | Наверх | Cообщить модератору

215. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (15), 10-Фев-21, 15:22 
Тебе Перл показать или так поймёшь?
Ответить | Правка | Наверх | Cообщить модератору

218. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от economist (?), 10-Фев-21, 15:31 
Покажи. Мы ведь оцениваем красоту, а не краткость.
Ответить | Правка | Наверх | Cообщить модератору

251. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 10-Фев-21, 20:02 
"однострочник" - это понятие красоты или краткости?
Ответить | Правка | Наверх | Cообщить модератору

245. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (245), 10-Фев-21, 19:01 
> В красоте однострочников посоревнуемся? 1-строчник - чтобы нивелировать разницу в ЯП. Начну:
> Задание1: x = ' 123 БОЛЬШИЕ_м4ал5ен6ькие78 9' # -> '123456789'
> На Python: print(''.join(i for i in x if i.isdigit()))


?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
findall(D,(member(D,X),char_type(D,digit)),Ds), format('~s',[Ds]).                                                                        
123456789

?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
include([In]>>char_type(In, digit), X, Ds), format('~s',[Ds]).
123456789


Ответить | Правка | К родителю #206 | Наверх | Cообщить модератору

253. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (15), 10-Фев-21, 20:06 
Это явно красивее, чем блевотина экономиста. Тут хоть суть подчёркивается задачи.
Ответить | Правка | Наверх | Cообщить модератору

255. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от economist (?), 10-Фев-21, 20:24 
Хамите...
Ответить | Правка | Наверх | Cообщить модератору

273. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 10-Фев-21, 23:11 
Поплачь - легче станет.
Ответить | Правка | Наверх | Cообщить модератору

254. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от economist (?), 10-Фев-21, 20:23 
Если мы не выводим результат print(), то на Python еще короче и читаемей:

''.join(i for i in x if i.isdigit())


''.join(filter(str.isdigit, x))


map(int, re.findall('\d+', x))


''.join(i for i in x if i.isdigit())


''.join(filter(lambda d: x.isdigit(x)


re.sub('\D', '', x)


re.findall('\d+', x)


7 сравнительно разаных способов, и это в языке, Дзен которого вещает про один и только один лучший способ. Богатство конструкций языка лично меня впечатляет. Было б здорово чтобы и другие высказались :-)  


Ответить | Правка | К родителю #245 | Наверх | Cообщить модератору

261. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (261), 10-Фев-21, 22:21 
> 7 сравнительно разаных способов,

И со сравнительно разным результатом ;)
>>> re.sub('\D', '', x)

'123456789'
> map(int, re.findall('\d+', x))
>>> [x for x in map(int, re.findall('\d+', x))]

[123, 4, 5, 6, 78, 9]

Ответить | Правка | Наверх | Cообщить модератору

274. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (15), 10-Фев-21, 23:15 
> И со сравнительно разным результатом ;)

Вот так экономисты и пишут... туфту. Зато гонору...

Ответить | Правка | Наверх | Cообщить модератору

309. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от economist (?), 11-Фев-21, 13:40 
С регулярками был сознательный вброс, каюсь, но по другому на соревнование никого тут не вытиащишь. А другие 5-ть методов - рабочие и достаточно показательные. Другие пусть скажут что читается лучше.
Ответить | Правка | Наверх | Cообщить модератору

324. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (-), 14-Фев-21, 06:47 
Прикольные отмазки у питономакак. Соревноваться с тобой в программировании - то же что соревноваться с похом в администрировании.
Ответить | Правка | Наверх | Cообщить модератору

264. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (-), 10-Фев-21, 22:32 
> ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
> findall(D,(member(D,X),char_type(D,digit)),Ds), format('~s',[Ds]).
> 123456789


?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
forall((member(D,X), is_digit(D)), format('~c',[D])).
123456789


> ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
> include([In]>>char_type(In, digit), X, Ds), format('~s',[Ds]).
> 123456789


include(is_digit, X, Ds), format('~s',[Ds]).

С "грязной побочкой":

member(D,X), is_digit(D), format('~c',D), fail.
123456789

Ответить | Правка | К родителю #245 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру