@spbpython

Страница 453 из 785
Sergey
15.07.2017
18:41:12
ура, я не одинок > Ugh, Jinja is not an "excellent" templating language. It's a terrible broken mix of pythonisms and arbitrary-feeling restrictions and oddly missing pieces. https://news.ycombinator.com/item?id=14777697

Sergey
15.07.2017
18:47:30
Google
Serge
15.07.2017
18:59:24
не знаю мне mako нравится
Ну, мако хороший, да. Вот, только, в наше время серверные шаблоны - анахронизм

Sergey
15.07.2017
19:00:48
Ну, мако хороший, да. Вот, только, в наше время серверные шаблоны - анахронизм
я сейчас jinja только в ansible пользуюсь, но и там хватает

Roman
15.07.2017
19:20:11
f-строки
Это хороший, быстрый вариант

Nikolay
15.07.2017
19:20:39
Александр
15.07.2017
20:21:36
Это хороший, быстрый вариант
В руби это давно есть) и да, это отличный вариант

Andrey
16.07.2017
07:28:17
Есть кто на pycon russia?

Aline
16.07.2017
07:46:54


Igor
16.07.2017
07:54:21
где достать такую красоту? Или ты заказывала?)

Aline
16.07.2017
07:54:39
На регистрации были

Евгений
16.07.2017
07:54:44
Alexey
16.07.2017
13:13:16
А вот если в доке прописано: set() -> new empty set object set(iterable) -> new set object Build an unordered collection of unique elements. А на деле получается что новый объект все таки отсортирован. Это плохо или нет(в плане несоответствия докам)? Много ли о чем еще недосказано или сказано не то что есть на самом деле?

b0g3r
16.07.2017
13:18:51
Там не написано, что он не отсортирован :)

Alexey
16.07.2017
13:19:52
А разве "unordered collection" это не "неупорядоченный набор"?

Google
b0g3r
16.07.2017
13:20:00
В CPython 3.6 (который на python.org) добавили оптимизацию для хэш-структур и теперь все они сохраняют порядок

Но это особенности реализации, а не требование к языку

и полагаться на это тем более нельзя точно также, как раньше некоторые полагались на случайность словаря, например, и делали на нем выбор случайного чего-нибудь :)

В CPython 3.6 (который на python.org) добавили оптимизацию для хэш-структур и теперь все они сохраняют порядок
уточню, оптимизация заключается не в сохранении порядка, а в ускорении работы. Сохранение порядка - побочный эффект

https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-compactdict

Ruslan
16.07.2017
13:22:26
А разве "unordered collection" это не "неупорядоченный набор"?
Никто не говорит что она не может быть упорядоченной, просто это не гарантируется

Alexey
16.07.2017
13:24:35
Никто не говорит что она не может быть упорядоченной, просто это не гарантируется
А если она по факу остортирована; и я гарантирую что код на другой машине будет исполнать тот же python что и у меня(сборка из одной репы), то я могу смело перед s = set(arr) выкинуть arr.sort() ?

b0g3r
16.07.2017
13:25:12
а как arr.sort() поможет в случае с последующим добавлением в сет?

Alexey
16.07.2017
13:25:34
Просто я пробоваля два варианта: arr.sort() s = set(arr) и s = set(arr) В обоих случаях я получил отсортированную коллекцию.

b0g3r
16.07.2017
13:25:47
а теперь запусти этот код на 3.5

сортируй-несортируй, сет не гарантирует порядок

поэтому твой код *уже* полагается на хранение порядка, и он *уже* требует определенный питон :)

Во-первых я довольно грубо соврал выше, приравняв новый дикт к сету

Во-вторых у сета чуть-чуть подкрутили оптимизацию, и он хранит не так как 3.5, но всё же, довольно рандомно :) Числа, как и старая имплементация дикта он в определенных условиях упорядочивает

3.5 In [5]: set([2,'c', 5, 'a', 1]) Out[5]: {1, 2, 'a', 5, 'c'} 3.6 In [20]: set([2,'c', 5, 'a', 1]) Out[20]: {1, 2, 5, 'c', 'a'}

Alexey
16.07.2017
13:34:42
Просто есть такая задачка: Find the unique number in list. Первоначальная реализация была: for e in arr: if arr.count(e) == 1: return e Но тесты зафелились и первое что мне пришло в голову - сортирнуть лист: arr.sort() for e in arr: if arr.count(e) == 1: return e Но тесты опять сфейлились. Немного погуглив я наткнулся на set() и привел код к такому виду: arr.sort() s = set(arr) for e in s: if arr.count(e) == 1: return e Алилуйя - тесты прошли. Но я подумал, а зачем идти по *неотсортированной коллекции* после использования сета, кода проще сортирнуть ее. Посравнивал я этот s в дебаг режиме - что сорт, что не сорт, все одинаково. Вот чобсна и вся ситуация :)

Alexey
16.07.2017
13:37:09
А все остальные могут повторяться несколько раз или ровно два?
Входной лист не менее 3 элементов, уникальный элемент всегда один, кол-во элементов в листе неограничено.

Google
b0g3r
16.07.2017
13:37:34
в смысле всегда один, а вижу

Nikolay
16.07.2017
13:38:41
Тогда самое простое - обернуть в Counter, имхо

b0g3r
16.07.2017
13:39:04
а чому первая версия кода-то не работала?

Nikolay
16.07.2017
13:39:30
По времени небось

Это ж 2^n

b0g3r
16.07.2017
13:39:55
логично

Я всё ещё не очень понял мотивацию сортировать что-либо в этой задаче)

Nikolay
16.07.2017
13:40:37
Там и не надо

Alexey
16.07.2017
13:42:00
Я всё ещё не очень понял мотивацию сортировать что-либо в этой задаче)
Ну а если искомы элемент находится в диапазоне от 0 до 5? Отсортировав по возростанию я исключу проход по лишним итерациям. Разве не так?

b0g3r
16.07.2017
13:42:19
а если искомый элемент последнее число?) то увеличишь?)

Nikolay
16.07.2017
13:42:26
Не нужна тут сортировка вообще

И решение твоё крайне не эффективное

Alexey
16.07.2017
13:43:08
Nikolay
16.07.2017
13:43:24
А как тогда лучше?
Я ж выше написал

Берёшь Counter и айда

Alexey
16.07.2017
13:55:15
Берёшь Counter и айда
Прогнал for e in set(arr): if arr.count(e) == 1: return e и for i in Counter(arr).items(): if i[1] == 1: return i[0] Первый выигрывает в пол секунды :D Спасибо за Counter - интересная штука.

b0g3r
16.07.2017
13:58:52
Советую почитать тебе чего-нибудь по алгоритмам. Есть чудесная "Грокаем алгоритмы" - очень простая и наглядная

Google
Nikolay
16.07.2017
14:25:23
У него есть методы для поиска самых частых элементов, например

b0g3r
16.07.2017
15:03:44
Nikolay
16.07.2017
15:04:14
А ему надо тот, который не повторяется
То есть нужно просто реверсировать оценку, да

Aleksander
16.07.2017
15:05:38
всем привет а что сейчас для паралельных вычислений в third party сервисах есть ? aws lambda ? нужно паралельно запустить функцию с разными параметрами - то есть фактически map просто

Aleksander
16.07.2017
15:10:51
спасибо думаю pywren в самый раз будет

Vitali K.
16.07.2017
15:18:58
В стандартном multiprocessing такое есть

Alexey
16.07.2017
16:03:00
А как связаны сортировка и упорядоченность?
Алгоритм сортировки - это алгоритм для упорядочивания элементов в списке.

Roman
16.07.2017
16:06:14
Алгоритм сортировки - это алгоритм для упорядочивания элементов в списке.
Допустим, у тебя словарь помнит порядок добавления элементов.

Alexey
16.07.2017
16:12:41
Допустим, у тебя словарь помнит порядок добавления элементов.
Я в данной задаче работал со списками, а не с словарями. И я уже уяснил что в данной задаче сортировка ни на что не влияет. А вот если словарь будет помнить порядок добавления, то с ним можно будет работать как с представлением стека или очереди(опять же, в зависимости от задачи).

Nikolay
16.07.2017
17:05:13
Хоть Бизли и разрешил

Olya
16.07.2017
22:20:56
Ребят, никто случаем не в курсе, есть ли шутка про костыли и велосипеды на английском? Поймут ли ее, если перевести дословно?

Dmitry
16.07.2017
22:28:10
дословно не поймут, имхо)

Dmitry
16.07.2017
22:36:17
workarounds & wheel reinventments но смысл шутки потеряется, там нету этого мема

Google
Dmitry
16.07.2017
22:36:44
kludge?)

Dmitry
16.07.2017
22:37:15
а, ну да

Olya
16.07.2017
23:46:02
Спасибо :) Да, wheel reinventment звучит правдиво

amureki
17.07.2017
06:27:34
По моему опыту workarounds и dirty hacks в ходу

Александр
17.07.2017
07:46:25
https://12factor.net/ru/

Vitali K.
17.07.2017
08:40:27
https://12factor.net/ru/
Я эту штуку нашёл только а прошлом году. А оказывается она довольно старая

Александр
17.07.2017
08:43:52
Я эту штуку нашёл только а прошлом году. А оказывается она довольно старая
Я думаю, если копнуть, то многое, что сейчас является модным, на самом деле давно уже придумано )

Vyacheslav
17.07.2017
08:49:46
ага особенно хранить конфигурацию как переменные окржения и сорсить их.

Страница 453 из 785