Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы
питон рили охуенен, посоны ``` def distribute(es,n): """ >>> distribute([10,11,12],4) [[], [10], [11], [12]] >>> distribute([10,11,12,13],4) [[10], [11], [12], [13]] >>> distribute([10,11,12,13,14],4) [[10], [11], [12], [13, 14]] >>> distribute([10,11,12,13,14,15,16],4) [[10], [11, 12], [13, 14], [15, 16]] >>> distribute([10,11,12,13,14,15,16,17,18,19],4) [[10, 11], [12, 13, 14], [15, 16], [17, 18, 19]] """ p = [ (len(es) * (i+1) / n) - (len(es) * i / n) for i in range(n) ] res = [] e = enumerate(es) for m in p: res.append([next(e)[1] for i in range(m)]) return res ```
Рекомендовали: @ninesigns
#933DZH / @mugiseyebrows / 3064 дня назад

што
#933DZH/1JP / @anonymous / 3064 дня назад
@anonymous чо што разделялка одной кучи на N примерно равных кучек всего в шесть строк, обоссы меня господь если это не совершеннейшищий скриптовый язык
#933DZH/B6M / @mugiseyebrows --> #933DZH/1JP / 3064 дня назад
> `for m in p: res.append([next(e)[1] for i in range(m)])` Ебаный в рот, иди нахуй, шизик.
#933DZH/2CC / @postman / 3064 дня назад
@postman как надо?
#933DZH/W12 / @mugiseyebrows --> #933DZH/2CC / 3064 дня назад
@mugiseyebrows а ну да, посплайсить можно было
#933DZH/JP0 / @mugiseyebrows --> #933DZH/W12 / 3064 дня назад
@mugiseyebrows Никак не надо такой хуйни.
#933DZH/FUH / @postman --> #933DZH/W12 / 3064 дня назад
@postman лан
#933DZH/RYI / @mugiseyebrows --> #933DZH/FUH / 3064 дня назад
λ> let splity ls l = splitPlaces ((\(b, s) -> (replicate (l - s) b) ++ (replicate s (b + 1))) $ divMod (length ls) l) ls λ> splity [1..10] 4 [[1,2],[3,4],[5,6,7],[8,9,10]]
#933DZH/QJ0 / @l29ah / 3064 дня назад
@l29ah А теперь в пойнтфри, че как не пацан?
#933DZH/MVQ / @postman --> #933DZH/QJ0 / 3064 дня назад
@postman flip =<< (splitPlaces .) . ap ((`ap` snd) . (. fst) . (`ap` (flip replicate . (1 +))) . (liftM2 (++) .) . flip . (replicate .) . (-)) . divMod . length
#933DZH/VWO / @l29ah --> #933DZH/MVQ / 3064 дня назад
@l29ah Утилитой нечестно.
#933DZH/ASE / @postman --> #933DZH/VWO / 3064 дня назад
@postman Я чё ебанутый код сам писать???
#933DZH/EBA / @l29ah --> #933DZH/ASE / 3064 дня назад
@mugiseyebrows групировать два и более итератора в зип
#933DZH/NUR / @anonymous --> #933DZH/W12 / 3063 дня назад

@l29ah Код на питоне читабельней обоих вариантов

#933DZH/I5W / @ninesigns --> #933DZH/VWO / 3063 дня назад
Чем это: `[ (len(es) * (i+1) / n) - (len(es) * i / n) for i in range(n) ]`, отличается от этого: `[ len(es) / n for i in range(n) ]`?
#933DZH/CPG / @kuzy000 / 3063 дня назад

Но зачем?

#933DZH/5PT / @anonymous / 3063 дня назад
>>> n = 4 >>> es = [10, 11, 12] >>> p = [ (len(es) * (i+1) / n) - (len(es) * i / n) for i in range(n) ] >>> p [0.75, 0.75, 0.75, 0.75] >>> for m in p: print(m) ... 0.75 0.75 0.75 0.75 >>> # res.append([next(e)[1] for i in range(m)]) ... >>> range(0.75) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integer >>> t = 0.75 >>> range(t) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integer Как понять питон?
#933DZH/RL8 / @kuzy000 / 3063 дня назад
@kuzy000 ``` $ cat d.py def distribute(es,n): p1 = [ (len(es) * (i+1) / n) - (len(es) * i / n) for i in range(n) ] p2 = [ len(es) / n for i in range(n) ] return p1, p2 $ python3 -i d.py >>> distribute([11,21,31], 4) ([0.75, 0.75, 0.75, 0.75], [0.75, 0.75, 0.75, 0.75]) >>> $ python2 -i d.py >>> distribute([11,21,31], 4) ([0, 1, 1, 1], [0, 0, 0, 0]) >>> ``` БЛЯДЬ ЧТО ЭТО
#933DZH/YR8 / @kuzy000 --> #933DZH/RL8 / 3063 дня назад
@kuzy000 В етом питоне / делит нацело, а в том питоне — нет.
#933DZH/IUS / @anonymous --> #933DZH/YR8 / 3063 дня назад
@kuzy000 я не пони, что там?
#933DZH/CO9 / @anonymous --> #933DZH/RL8 / 3063 дня назад
@anonymous Сорь, перепутал питоны.
#933DZH/RK7 / @kuzy000 --> #933DZH/CO9 / 3063 дня назад
@anonymous Я просто не знаю от чего охуевать: от обратной совместимости или от уебищности питон2. В итоге - охуеваю от этого выбора.
#933DZH/7Z9 / @kuzy000 --> #933DZH/IUS / 3063 дня назад
@kuzy000 во втором можно сделать как в третьем // from __2017__ import division // видел статью о том, что: второй питон имеет длинный срок поддержки (до 2020 года), в то время как с третьим ваши поделки будут ломаться с каждым инкрементом второй цифры версии
#933DZH/I7F / @anonymous --> #933DZH/7Z9 / 3063 дня назад
@ninesigns Поверю тебе на слово, поскольку не понял как он работает.
#933DZH/NBV / @ndtimofeev --> #933DZH/I5W / 3063 дня назад
@postman Да не, норм, я разрешил.
#933DZH/I9U / @ndtimofeev --> #933DZH/ASE / 3063 дня назад
@ninesigns нет
#933DZH/9QV / @l29ah --> #933DZH/I5W / 3063 дня назад
@ndtimofeev Не понял код на питоне, прочитал условия задачи и придумал и имплементировал алгоритм с нуля ._.
#933DZH/00Y / @l29ah --> #933DZH/NBV / 3063 дня назад
Поссал на дауна. ``` def distribute(es,n): p=lambda i:len(es)*i//n return [ es[p(i):p(i+1)] for i in range(n) ] ```
#933DZH/M8A / @anonymous / 3063 дня назад
@kuzy000 тама целочисленное деление оно пунькает то `n` то `n+1`
#933DZH/7YN / @mugiseyebrows --> #933DZH/CPG / 3063 дня назад
#933DZH/DIC / @mugiseyebrows --> #933DZH/YR8 / 3063 дня назад
@anonymous о пасяб
#933DZH/134 / @mugiseyebrows --> #933DZH/M8A / 3063 дня назад
@kuzy000 какая нахуй обратная совместимость между мажорными версиями, уёба
#933DZH/YW7 / @anonymous --> #933DZH/7Z9 / 3063 дня назад
#933DZH/TUV / @anonymous --> #933DZH/M8A / 3063 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.