@python_beginnersЭта группа больше не существует

Страница 642 из 1885
b0g3r
27.10.2016
23:08:28
или нет

хм

понял

Leonid
27.10.2016
23:08:57
понял
вроде в списках нет

Google
b0g3r
27.10.2016
23:09:08
это я игрался с ORM и там была .contains

Leonid
27.10.2016
23:10:09
Спать пора прост )

b0g3r
27.10.2016
23:10:15
верно)

Pavel
28.10.2016
02:08:43
for nick in nicks: if validate(nick): clear_nicks.append(nick)
valid_nicks = list(filter(validate, nicks))

Zart
28.10.2016
03:40:00
а case sensitivity пофиг?

возможно надо .lower() нахерачить

x3233
28.10.2016
03:56:00
И стрип'ов

Igor
28.10.2016
05:23:31
Регулярки медленнее будут
я тоже так недавно думал :) а теперь зацени: In [11]: import re In [12]: s = '8\xa0252,23' In [13]: ''.join(i if (i.isdigit() or i == ',') else '' for i in s) Out[13]: '8252,23' In [14]: %timeit ''.join(i if (i.isdigit() or i == ',') else '' for i in s) 100000 loops, best of 3: 2.22 µs per loop In [15]: re.sub(r'[^\d,]', '', s) Out[15]: '8252,23' In [16]: %timeit re.sub(r'[^\d,]', '', s) 1000000 loops, best of 3: 1.64 µs per loop

Zart
28.10.2016
05:49:27
зависит от объемов входных данных. чем их больше, тем эффективнее становятся регекспы

Igor
28.10.2016
05:50:17
ага, и '8\xa0252,23' - это очень дохуя входных данных %))

Zart
28.10.2016
05:53:14
с мобилы не написать толком

Pavel
28.10.2016
06:31:57
на строке '8\xa0252,23' наблюдаю проигрыш re, но на '8\xa0252,23'*2 регулярки уже выигрывают. С увеличенеим строки скорость регулярок растёт логарифмом (если глазомер не врёи), а join - линейно.

Google
Pavel
28.10.2016
06:58:42
>>> def check(n): ... a = timeit.timeit("re.sub(r'[^\d,]','',s)", "import re; s='8\xa0252,23'*%d" % n) ... b = timeit.timeit("''.join(i for i in s if i.isdigit() or i==',')", "s='8\xa0252,23'*%d" % n) ... print(n, a, b) ... >>> for x in range(1,21): ... check(x) ...

V
28.10.2016
08:46:41
скажите, а можно ли изящно делать распаковку вложенных кортежей? типа >>> tup_tup = ('a', ('b', 'c'), ('d', 'e')) >>> a, b, c, d, e = tup_tup я понимаю что именно так нельзя, но как-то можно аналогично? не соображу как поизящнее распаковать

Zart
28.10.2016
08:49:31
а тупл у тебя фиксированный?

или вложенность от балды?

V
28.10.2016
08:49:54
фиксированный

вот в таком именно виде, элемент и два тупла

Zart
28.10.2016
08:50:25
>>> tup_tup = ('a', ('b', 'c'), ('d', 'e')) >>> a, (b, c), (d, e) = tup_tup >>> a, b, c, d, e ('a', 'b', 'c', 'd', 'e') достаточно красиво?

V
28.10.2016
08:51:58
божественно, я именно это и хотел, спасибо ))

Janek
28.10.2016
08:52:09
Пацаны

Для сайта одностраничника что можно выучить

Zart
28.10.2016
08:52:58
фласк?

(советчиков с ботлом сразу шли нахуй)

Janek
28.10.2016
08:53:13
Вот. Это хотел услышать

Фоаск пойдет для этого

Слушай, его же быстро освоишь, если можешь на жанге написать с нуля инет магаз?

Zart
28.10.2016
09:00:51
нихуя не понял логику вопроса

F
28.10.2016
09:05:06
/dev
28.10.2016
09:08:47
Для сайта одностраничника что можно выучить
Статика? Зачем тогда что-то кроме nginx тебе?

Zart
28.10.2016
09:11:54
почему статика

Google
Igor
28.10.2016
09:15:04
ну одностраничник это обычно какая-нибудь хуета типа домашней страницы или лендинга

для таких бекенд обычно не нужен

поэтому статика

поэтому фласк, джанго и прочие идут нахуй

V
28.10.2016
09:15:23
вроде в одном из последних питонов (3.4-3.6) сильно улучшили работу с анпакингом
ну зарт вполне изящный способ показал, как я и хотел, мне просто сначала скобок не хватило

Igor
28.10.2016
09:15:29
а, да

Letalis
28.10.2016
09:16:05
titles_list = ['No title', 'No title','No title', 'Yaaar', 'Azaza'] народ, как переименовать все итемы с Но тайтлом в формат (номер)+Но тайтл? тоесть, чтобы на выхде было так: titles_list = ['1. No title', '2. No title','3. No title', 'Yaaar', 'Azaza'] С энумерейт и форматом что-то не получается.

Zart
28.10.2016
09:17:01
Letalis
28.10.2016
09:17:38
Letalis
28.10.2016
09:17:50
print(str(titles_list) + ' is OLD titles list') for t, n in enumerate(titles_list): if t == 'No title': t.replace('No title', 'No title {}'.format(n + 1)) print(str(titles_list) + " is NEW titles list")

вот это не работает

Igor
28.10.2016
09:18:49
In [13]: ['{}. {}'.format(i, title) if title == 'No title' else title for i, title in enumerate(titles_list, 1)] Out[13]: ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza']

но: In [15]: ['{}. {}'.format(i, title) if title == 'No title' else title for i, title in enumerate(titles_list, 1)] Out[15]: ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza', '6. No title', '7. No title']

(по желанию можно еще с .lower() сравнивать, чтобы "NO TITLE" матчилось)

Zart
28.10.2016
09:20:02
>>> from itertools import count >>> titles_list = ['No title', 'No title','No title', 'Yaaar', 'Azaza'] >>> c = count(1) >>> [title if title != 'No title' else '{}. No title'.format(next(c)) for title in titles_list] ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza'] >>>

Pavel
28.10.2016
09:20:11
разложите вцикл и ввдеите переменную cnt, чо все в однострочники ударились

Google
Igor
28.10.2016
09:20:55
я у мамы мапредьюс

Letalis
28.10.2016
09:21:03
Спасибо всем! )

Вариант Игоря подходит хорошо

/dev
28.10.2016
09:21:36
я у мамы мапредьюс
Сортирую три числа на хадупе

Zart
28.10.2016
09:21:43
скажи спасибо, что не map + lambda
>>> c = count(1) >>> map(lambda title:title if title != 'No title' else '{}. No title'.format(next(c)), titles_list) ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza']

Admin
ERROR: S client not available

Zart
28.10.2016
09:22:13
технически это всё равно двухстрочник

Pavel
28.10.2016
09:22:27
Сортирую три числа на хадупе
ну, это чертовски большие числа. ?

Igor
28.10.2016
09:22:29
но 448, походу, только к параметрам в функциях относится

Zart
28.10.2016
09:22:36
можно конечно извратится.....

Letalis
28.10.2016
09:24:50
Zart
28.10.2016
09:24:51
>>> [t if t != 'No title' else '%d. %s'%(titles_list[:i].count('No title')+1, t) for i, t in enumerate(titles_list)] ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza', '4. No title'] *роет окоп*

Letalis
28.10.2016
09:25:39
ну, программы итоговой.

Letalis
28.10.2016
09:25:54
Если есть варианты с импортом и без - то лучше какой?

Это я так, на будущее.

Google
Zart
28.10.2016
09:26:12
если ты импорт делаешь на уровне модуля, то он один раз за всю жисть процесса импортнется

Igor
28.10.2016
09:26:13
причем тут это? надо смотреть на производительность самого count, который зарт предлагает

Zart
28.10.2016
09:26:20
ват

Igor
28.10.2016
09:27:13
ну бля, леталис привязался к произвоидтельности импорта имхо, на нее не надо смотреть, импорт всего один раз загрузится в память и все если его беспокоит производительность, надо бенчмаркнуть вариант без count() и вариант с count()

Zart
28.10.2016
09:27:56
А сколько обычно в серьезных программах?)
в джанге под полсотни набегает

Letalis
28.10.2016
09:28:04
хуясе

Igor
28.10.2016
09:28:23
In [16]: %timeit ['{}. {}'.format(i, title) if title == 'No title' else title for i, title in enumerate(titles_list, 1 ...: )] 100000 loops, best of 3: 2.78 µs per loop In [17]: from itertools import count In [18]: c = count(1) ...: In [19]: %timeit [title if title != 'No title' else '{}. No title'.format(next(c)) for title in titles_list] ...: ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza'] ...: 100000 loops, best of 3: 2.77 µs per loop Out[19]: ['1. No title', '2. No title', '3. No title', 'Yaaar', 'Azaza']

лол!

Zart
28.10.2016
09:28:28
э

Letalis
28.10.2016
09:28:29
ясно)

Zart
28.10.2016
09:28:33
вы не сравнивайте

одним импортом можно запустить цепную реакцию

Igor
28.10.2016
09:29:01
isort на тебя не хватает

Страница 642 из 1885

Эта группа больше не существует Эта группа больше не существует