
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

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 - линейно.

Igor
28.10.2016
06:55:56

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

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

Igor
28.10.2016
09:14:33
скажите, а можно ли изящно делать распаковку вложенных кортежей? типа
>>> tup_tup = ('a', ('b', 'c'), ('d', 'e'))
>>> a, b, c, d, e = tup_tup
я понимаю что именно так нельзя, но как-то можно аналогично? не соображу как поизящнее распаковать
вроде в одном из последних питонов (3.4-3.6) сильно улучшили работу с анпакингом

Google

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

V
28.10.2016
09:15:23

Igor
28.10.2016
09:15:29
а, да

/dev
28.10.2016
09:15:31

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']
С энумерейт и форматом что-то не получается.

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

Zart
28.10.2016
09:17:01

Letalis
28.10.2016
09:17:38

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

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, чо все в однострочники ударились

Igor
28.10.2016
09:20:27

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

Igor
28.10.2016
09:21:46

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
ну, программы итоговой.

Igor
28.10.2016
09:25:40

Pavel
28.10.2016
09:25:47

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()

Letalis
28.10.2016
09:27:24

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 на тебя не хватает
Эта группа больше не существует