@ru_python

Страница 7123 из 9768
?? Eugene
21.11.2018
21:56:48
7 октября был пост

Ivan
21.11.2018
21:57:24
Сорри, тогда

?? Eugene
21.11.2018
21:58:01
Ну оставь, может, кому пригодится

Google
Muhammadyusuf
21.11.2018
21:58:52
megapro17
21.11.2018
22:19:19
Чё за бред, питон не компилируется

Там всё равно длл лежит

Muhammadyusuf
21.11.2018
22:22:36


Alex
21.11.2018
22:29:37
Чё за бред, питон не компилируется
так новички называют сборку в бинарь, ничего общего с компиляцией ЯП не имеет. просто исходники с зависимостями пакуются в *.exe, которые при запуске копируются во временную папку и выполняются.

Alex
21.11.2018
22:31:06
при этом новичков все равно ждет дивный новый мир зависимостей от CRT, который может быть разным в зависимости от версии винды.

Ilia
21.11.2018
22:31:48
что делать?
Сборку в бинарь, естественно..

Alex
21.11.2018
22:32:30
А насчёт nuitka что можешь сказать
nuitka - это ЕМНИП транслятор из Python в С++

а что nuitka? я давно об этом проекте ничего не слышал.

Сборку в бинарь, естественно..
как видишь один из вариантов - pyinstaller

Google
Ilia
21.11.2018
22:33:55
ага запомню на будущее

Виктор
21.11.2018
22:59:33
Такая ситуация: написал регулярку для выделения из уравнения свободного члена (коэффициента без переменной). В ней рассматривается три случая: когда когда он находится в начале строки, в середине и в конце: r'(^\d+)[-+]|[-+](\d+$)|[-+](\d+)[-+]' . В результате нужно получить целое число без всяких плюсов и минусов слева/справа; для этого были использованы группы. Проблема в том, что Python индексирует эти группы как три разных, хотя в условии указано, что строка должна совпадать с одним из трёх шаблонов. Вопрос: как сделать так, чтобы Python считал все эти три пары скобок за первую группу?

К примеру, для строки 'x^2+4+x^3' срабатывает третья регулярка, поскольку '4' находится в середине. Следовательно, чтобы получить чисто '4', нужно обратиться к группе номер 3: free_nomial=re.search(r'(^\d+)[-+]|[-+](\d+$)|[-+](\d+)[-+]', 'x^2+4+x^3') print(free_nomial.group(3)) Как сделать, чтобы не зависимо от того, какая регулярка сработала, можно было обращаться к group() и получать чистый результат?

Donaudampf
22.11.2018
01:24:43
Думаю, нет. Т.к. такой вариант оптимальней
а в чём тут заключается оптимальность?

по производительности это даже медленнее, хотя там разница микроскопическая, а поддерживать код с такими регулярками - то ещё удовольствие

In [95]: %timeit [x for x in re.search(r'(^\d+)[-+]|[-+](\d+$)|[-+](\d+)[-+]', 'x^2+4+x^3').groups() if x] 2.38 µs ± 7.92 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) In [96]: %timeit [x for x in re.split('\-|\+', 'x^2+4+x^3') if x.isdigit()] 2.25 µs ± 12.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

hachiman
22.11.2018
03:01:39
?

Khachatur
22.11.2018
05:43:43
Доброе утро.

Anton
22.11.2018
05:47:13
Доброе утро.
И Вам не хворать

Khachatur
22.11.2018
05:48:34
Есть такой код: import random l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] sorted(l, key= lambda x: random.random()) Такой код производит перемешивание списка. Но почему, я не могу понять. Когда мы ключу передаём функцию, он применяет данную функцию к каждому итерируемому элементу списка. Но random.random() возвращает число в пределах (0, 1), и тем не менее перемешивается список. Кто-нибудь может пояснить?

Khachatur
22.11.2018
05:51:58
Khachatur
22.11.2018
05:53:05
А рандом возвращает дробное число
Понятно, что random возвращает дробное число. Но почему происходит перемешивание?

Tishka17
22.11.2018
05:53:51
Ну вот у тебя был список 1, 2, 3, 4 И ключи для него 0.5, 0.1, 0.9, 0.8 Отсортирвй в порядке возрастания ключей

Google
Tishka17
22.11.2018
05:54:14
Получится 2, 1, 4, 3

Хотя есть подозрение, что такая сортировка может никогда не закончиться

Khachatur
22.11.2018
05:55:30
Я сломался.

Tishka17
22.11.2018
05:55:34
Так как в процессе рандом может меняться

Юзай лучше random.shuffle

Khachatur
22.11.2018
05:56:34
Юзай лучше random.shuffle
Это понятно. Но мне хотелось эту строчку кода понять.

Tishka17
22.11.2018
05:57:02
Это понятно. Но мне хотелось эту строчку кода понять.
Ну давай, представляешь сортировку пузырьком?

Khachatur
22.11.2018
05:57:12
Да

Меньший всплывает

Tishka17
22.11.2018
05:57:31
Там есть if key(x)>key(y): x,y=y,x

Ну грубо

Khachatur
22.11.2018
05:57:51
Допустим

Tishka17
22.11.2018
05:58:09
Ну вот у тебя key рандомный

И всплывает получается хз какой

Khachatur
22.11.2018
05:58:46
В вот это уже не совсем понятно.

Tishka17
22.11.2018
05:59:45
Ну выпиши на листок

Khachatur
22.11.2018
06:00:24
Я понимаю key, таким образом, что все элементы приобретают некоторый map ключей, в соответствии с которым происходит сортировка исходного списка по отсортированному map-у.

Александр
22.11.2018
06:01:09
Там не элементы списка у него сравниваются, а два числа, которые random генерирует. Если для левого числа из пары двух элементов списка сгенерируется большее число, чем для правого, они поменяются местами.

Khachatur
22.11.2018
06:02:48
Я кажется начал понимать.

Google
Khachatur
22.11.2018
06:03:57
Tishka17
22.11.2018
06:04:09
Хочется попробовать потюнить свой код :))

Александр
22.11.2018
06:04:22
Tishka17
22.11.2018
06:04:29
Александр
22.11.2018
06:04:41
У тебя быстрее не будет, хоть переоптимизируйся

Tishka17
22.11.2018
06:05:04
Ну если разрыв удастся снизить, уже неплохо

Александр
22.11.2018
06:05:26
Я сравнивал код, но не с твоим, а со своим. До того, как писать генерацию кода парсера.

У тебя там ничего нового же, обычный asdict из dataclasses.

Это ещё в либе dataclasses_json также сделано

Но мне это все не устроило по скорости

Ну если разрыв удастся снизить, уже неплохо
Только микрооптимизациями если ?‍♂️

Напишу скоро тест и опубликую

Александр
22.11.2018
06:08:13
Tishka17
22.11.2018
06:08:33
У тебя там ничего нового же, обычный asdict из dataclasses.
Ну у меня в первую очередь парсинг, а не сериализация

Александр
22.11.2018
06:08:33
Да возьми сам сравни, если так торопишься)

Ну что быстрее по-твоему, код a = kw[“a”] или код, в котором проверки типов всяких и только в конце присвоение?

И все в цикле по всем полям

Google
Tishka17
22.11.2018
06:13:39
Ну что быстрее по-твоему, код a = kw[“a”] или код, в котором проверки типов всяких и только в конце присвоение?
Ну я и хочу вынести проверки типов в конструктор парсера. Просто мне не нравится exec в коде и что датакласс имеет кусок относящийся к view слою фактически

Александр
22.11.2018
06:14:37
Ты лучше подумай о тех, кто этим будет пользоваться

Получится, как в marshmallow

Tishka17
22.11.2018
06:15:36
Хочется "чистую" релазицию

Ты лучше подумай о тех, кто этим будет пользоваться
Ну ты уже сделал такую реализацию. Интересно, чего можно достичь без этого

Ты лучше подумай о тех, кто этим будет пользоваться
Так о том и речь. Должен быть датакласс, не зависящий ни от чего. И сериализаторы во что угодно: json, xml, jinja-шаблоны

И все отдельно

Ибо single responsibility

Александр
22.11.2018
06:16:47
Ну у меня добавляется только to_dict и from_dict

А по json и прочим форматам это так, дополнительные плюшки

Берёшь свой сериализатор пишешь и используешь в нем словари

Tishka17
22.11.2018
06:19:52
Да понятно

И все равно, уже например нельзя сделать два as_dict с разным поведением

Страница 7123 из 9768