
Artem
06.02.2017
07:29:02
Но тоже выглядит как хуй, в смысле читается так себе

Johnnie
06.02.2017
07:29:23
>>> def check(l):
... return all(l) or all((not i for i in l))
...
>>> a
[True, True, True]
>>> b
[False, False, False]
>>> c
[True, False, True]
>>> check(a), check(b), check(c)
(True, True, False)

arisu
06.02.2017
07:29:24

Igor
06.02.2017
07:29:34
типа такого
"SELECT foo FROM bar WHERE x LIKE ?", ('test',)

Google

arisu
06.02.2017
07:29:34
Лучше свертку
И олл

Pavel
06.02.2017
07:29:56
>>> def check(l):
... return all(l) or all((not i for i in l))
...
>>> a
[True, True, True]
>>> b
[False, False, False]
>>> c
[True, False, True]
>>> check(a), check(b), check(c)
(True, True, False)
список будет два раза итерироваться.

Artem
06.02.2017
07:30:07

Dmitriy
06.02.2017
07:30:08

Pavel
06.02.2017
07:30:21

Dmitriy
06.02.2017
07:30:35
Зависит от логгера но по дефолту так вроде

Artem
06.02.2017
07:30:58

Aragaer
06.02.2017
07:31:13
можно еще if all(lst) or all (map(not, lst)), но выглядит тоже

Artem
06.02.2017
07:31:28
Нот эни лучше

Johnnie
06.02.2017
07:31:39

Igor
06.02.2017
07:32:35
генератор*

Johnnie
06.02.2017
07:32:40
тьфу бля

Google

Johnnie
06.02.2017
07:32:40
да
генератор
ну так можно сказать что на вход строки ваще будут и тож не будет работать :D

Ssi
06.02.2017
07:33:24
в таком случае, всегда можно пробежаться третий раз, то есть нулевой, перед сравнением

Johnnie
06.02.2017
07:33:56
можно делать че то типа all(list(l) + [not i for i in l])

Aragaer
06.02.2017
07:33:59
да, можно кстати all(not(lst[0]) == not(x) for x in lst[1:]), но опять не самый эротичный вариант

Dmitriy
06.02.2017
07:34:09
Есть еще чуханский вариант для одного типа

Aragaer
06.02.2017
07:34:16
ы
map(not, lst).count(True) % lst.len() == 0
ми упоролся

Pavel
06.02.2017
07:35:02

Johnnie
06.02.2017
07:35:30
странно что еще никто не вывалил результаты timeit :)

Ssi
06.02.2017
07:35:48

Aragaer
06.02.2017
07:36:07
а есть аналог таймит для измерения уровня сексуальности кода?
тут мы не за производительность боремся!

Dmitriy
06.02.2017
07:36:29
Линты всякие наверно

Johnnie
06.02.2017
07:36:56
pip install sexytest

Ssi
06.02.2017
07:37:00
смотря что мы считаем сексуальностью
т.е. определённо что-то должно течь. В нашем случае, наверно, это память или мозг программиста и/или ревьювера
ну, и чем больше течёт, тем сексуальнее, вестимо

Google

Artem
06.02.2017
07:41:18
Как направление

Johnnie
06.02.2017
07:44:19
map(not, a).count(True) % a.len() == 0
^
SyntaxError: invalid syntax
wtf?
map(lambda x: not x, lst)?

Aragaer
06.02.2017
07:48:24
во, дажетак
filter(bool, lst).len() % lst.len()

Johnnie
06.02.2017
07:49:42
list(map(lambda x: not x, lst)).count(True) % len(lst) == 0 так не секс уже ваще

Aragaer
06.02.2017
07:49:51
>>> lst=[0,1,2]
>>> filter(bool, lst) in [lst, []]
False
>>> lst=[1,2,3]
>>> filter(bool, lst) in [lst, []]
True
не надо лямбдво
можно filter(bool, lst).len() in [0, lst.len()], но смысла вроде немного

Pavel
06.02.2017
07:53:46

Aragaer
06.02.2017
07:54:28
вместо not_ можно bool

Dmitriy
06.02.2017
07:54:53
def f(seq):
for el in seq:
if el != seq[0]:
return False
return True

Aragaer
06.02.2017
07:55:01
во, еще один вариант
t = map(bool, lst)
min(t) == max(t)

Pavel
06.02.2017
07:56:34
вместо not_ можно bool
кто там timeit вспоминал?
>>> timeit.timeit("list(map(lambda x: not(x), a))", "a=[True]*100")
9.467215467603864
>>> timeit.timeit("list(map(not_, a))", "from operator import not_; a=[True]*100")
4.142519329212888
>>> timeit.timeit("list(map(bool, a))", "a=[True]*100")
8.726468264875393

Johnnie
06.02.2017
07:56:48
1000 и 1 способ как решить то, на что автор вопроса уже забил походу))

Dmitriy
06.02.2017
08:04:17
Гм, если не создавать список без первого элемента, то метод выполняется быстрее, но при этом разве что избыточно сравнение первого элемента с самим собой

YaOurTea
06.02.2017
08:14:58

Google

Pavel
06.02.2017
08:15:47
что за клиент?

YaOurTea
06.02.2017
08:21:43
Телеграмм десктоп для линуксы
Дистр - арч

Sheridan
06.02.2017
08:22:40

YaOurTea
06.02.2017
08:23:47
Это не решение, а уход от проблемы

Ssi
06.02.2017
08:24:49

Pavel
06.02.2017
08:29:05

YaOurTea
06.02.2017
08:29:15

Subbotin
06.02.2017
08:35:34
шрифты очевидно пытаются использовать системные, а не тащат с собой
а. ну так нынче в теме можно менять шрифт

Admin
ERROR: S client not available

Subbotin
06.02.2017
08:38:34
авторы темы поставили шрифт которого у тебя нет
выкинь нахуй сторонние темы
извращение

arisu
06.02.2017
08:40:05
запамятовал, есть ли способ заменить символы в строке, пропустив их через функцию?

Igor
06.02.2017
08:40:22
строки иммутабельны
разве что если функция будет возвращать проапдейченную строку

arisu
06.02.2017
08:40:44
ну новую вернуть, делов-то

Igor
06.02.2017
08:41:40
можно конвертнуть строку в список (один символ - один элемент), сделать нужный реплейс по индексам и потом ''.join() сделать

arisu
06.02.2017
08:42:12
ну да, но чет это небольшое наркоманство

Igor
06.02.2017
08:42:12
можно слайсами. в зависимости от твоей ситуации
ну и .replace() есть, если по паттерну

Google

arisu
06.02.2017
08:42:21
''.join(map(lambda char: char if char.isalnum() else ' ', query))
примерно так сйчас и есть

Igor
06.02.2017
08:42:41
здесь я б re.sub подключил

arisu
06.02.2017
08:43:41
ну кстати можно
заодно и повторяющиеся пробелы в один ход вычистить можно

Igor
06.02.2017
08:43:54
имхо, проще/читабельнее будет, как ни странно :)))

I'm_your_god
06.02.2017
08:46:45
народ, простите за наглось, что врываюсь в вашу беседу...
Но меня мучает вопрос и не могу найти ответ.
В чём смысл в django делать manytomanyfield?
Ведь можно явно создать промежуточную модель, и при необходимости напрямую по ней бегать. Что такого особенного даёт manytomanyfield? лукапы этой вручную созданной модели так же доступны. Так же работает префетч и не работает селект_релейтед...

arisu
06.02.2017
08:48:07
смысл в том, чтобы не делать промежуточную модель
а сгенерировать ее автоматически
ну и дополнителньые операции с лукапами
в виде
field.all()
field.add

Aragaer
06.02.2017
08:48:41
а вот гугл говорит, что буквы лучше заменять через translate

arisu
06.02.2017
08:48:41
field.set

Aragaer
06.02.2017
08:49:47
>>> s = "Test"
>>> import string
>>> s.translate(string.maketrans("ts", "px"))
'Texp'

I'm_your_god
06.02.2017
08:49:49
field.set
так ведь и к кастомной модели я так же могу через field.set ходить

Aragaer
06.02.2017
08:49:55
в третьем питоне в str
http://stackoverflow.com/questions/555705/character-translation-using-python-like-the-tr-command

Igor
06.02.2017
08:50:55

arisu
06.02.2017
08:51:06

Aragaer
06.02.2017
08:56:00