groupToDict
_winnie — 18.10.2010
Адски не хватает библиотченой функции groupToDict(list, KeyFunc) во
всех языках программирования, которая выдаёт словарь
ключ->[список элементов для этого ключа]. Например, группировка
списка файлов по их расширению, или список покупателей,
сгруппированый по возрасту/городу/..В питоне я использую свою велосипедную идиому (см ниже), но даже в питоне она записывается слишком длинно, при своей частоте использования. Например, я её использую чаще бинарного поиска или приоритетной очереди, практически так же часто как сортировку.
result = {}
for x in list:
result.setdefault(KeyFunc(x), []).append(x)
В свои utils это вытащить не получается, так как записывается слишком коротко, что бы оформлять библиотекой. И нужно везде, как функция string.toUpper, включая работу в офисе, скрипты посылаемые другим людям, свои домашние в тысяче папок на двух компах на пяти языках программирования.
ps. в Haskell/Python функции groupBy делают не то, они групируют по рядом стоящим элементам и требуют адаптирования результата/параметров.
|
|
</> |
Консольные столики: стильные акценты в интерьере
Кто шел в учителя в советские времена?
И другие цветы октября, напомнили сказку
Стабильность.
81 год Робби ван Леувену
Ночь в Долине замков
Шутка. Для весёлости. Чтоб поднять оптимизм воли.
Как создать интернет-магазин самому бесплатно?
Восьмой дом. Продолжение 25

