Форум сайта python.su
Есть список в котором содержаться списки наследования потомков. К примеру такой:
[ ['foo', 'bar1', 'baz'], ['foo', 'bar1', 'bat'], ['foo', 'bar2', 'bat'], ['qwe', 'asd', ''] ]
{ 'foo': { 'bar1': { 'baz' : {}, 'bat' : {}, }, 'bar2': { 'bat' : {}, } }, 'qwe': { 'asd': {} } }
Отредактировано qnica (Янв. 16, 2014 10:16:02)
Офлайн
чтто-то у тебя не логичный вывод какой-то
Отредактировано bismigalis (Янв. 16, 2014 10:00:08)
Офлайн
bismigalis, простите, что-то фигню написал. Поправил.
Офлайн
Использовать библиотеку для создания/модификации деревьев - например http://www.stat.washington.edu/~hoytak/code/treedict/overview.html или https://github.com/cortesi/tinytree
Отредактировано alrusdi (Янв. 16, 2014 10:28:18)
Офлайн
#!/usr/bin/env python def assoc_in(m, ks, v): """Inspired by http://clojuredocs.org/clojure_core/clojure.core/assoc-in""" m = m or {} k = ks[0] ks= ks[1:] if ks: m[k] = assoc_in(m.get(k, {}), ks, v) else: m[k] = v return m # lst = [ ['foo', 'bar1', 'baz'], ['foo', 'bar1', 'bat'], ['foo', 'bar2', 'bat'], ['qwe', 'asd', ''] ] # reduce(lambda m, line: assoc_in(m, filter(None, line), {}), lst, {})
Отредактировано bismigalis (Окт. 11, 2014 15:18:09)
Офлайн
bismigalis, спасибо выглядит похожим на то что я искал.
Inspired by http://clojuredocs.orgКак-то смотрел доклад Александра Соловьева с JavaScript Frameworks Day 2013, и там он как раз очень интересно рассказывал про clojure. Кто еще не смотрел, очень рекомендую
Офлайн
Именно после просмотра этого одухотворенного доклада я и заинтересовался clojure :)
Офлайн
Тоже после этого доклада начал изучать clojure, доклад смотрится на одном дыхании
Офлайн