
Ivan
21.11.2018
21:54:44

?? 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, которые при запуске копируются во временную папку и выполняются.

Ilia
21.11.2018
22:30:35

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

megapro17
21.11.2018
22:31:16

Ilia
21.11.2018
22:31:48

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

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
00:48:07

Виктор
22.11.2018
01:06:14

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
?

Tishka17
22.11.2018
05:20:56

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), и тем не менее перемешивается список.
Кто-нибудь может пояснить?

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

Khachatur
22.11.2018
05:51:58

Tishka17
22.11.2018
05:51:59
Есть такой код:
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:53:05

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

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

Tishka17
22.11.2018
06:03:35

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 также сделано
Но мне это все не устроило по скорости
Напишу скоро тест и опубликую

Tishka17
22.11.2018
06:07:47

Александр
22.11.2018
06:08:13

Tishka17
22.11.2018
06:08:33

Александр
22.11.2018
06:08:33
Да возьми сам сравни, если так торопишься)
Ну что быстрее по-твоему, код a = kw[“a”] или код, в котором проверки типов всяких и только в конце присвоение?
И все в цикле по всем полям

Google

Tishka17
22.11.2018
06:13:39

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

Tishka17
22.11.2018
06:15:36
Хочется "чистую" релазицию
И все отдельно
Ибо single responsibility

Александр
22.11.2018
06:16:47
Ну у меня добавляется только to_dict и from_dict
А по json и прочим форматам это так, дополнительные плюшки
Берёшь свой сериализатор пишешь и используешь в нем словари

Tishka17
22.11.2018
06:19:52
Да понятно
И все равно, уже например нельзя сделать два as_dict с разным поведением