Created
November 7, 2014 03:38
-
-
Save aoshiman/a3ddec9e5c829bab22c3 to your computer and use it in GitHub Desktop.
defaultdictを使ったtreeの作り方
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import sys | |
from collections import defaultdict | |
from pprint import pprint | |
""" | |
defaultdictを使ったtreeの作り方 | |
参考URL | |
http://sonickun.hatenablog.com/entry/2014/07/12/231443 | |
https://gist.github.com/hrldcpr/2012250 | |
""" | |
def tree(): | |
return defaultdict(tree) | |
def dicts(t): | |
return {k: dicts(t[k]) for k in t} | |
def add(t, path): | |
for node in path: | |
t = t[node] | |
def make_a_tree(txt): | |
domain_tree = tree() | |
with open(txt, "r") as f: | |
for i in f: | |
row = i.replace("\n", "").split(".") | |
row.reverse() | |
add(domain_tree, row) | |
return dicts(domain_tree) | |
if __name__ == '__main__': | |
pprint(make_a_tree(sys.argv[1])) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
このスクリプトを使用して Adaway用広告除去リスト のdomain をtreeにしてみた
https://gist.github.com/aoshiman/c8513d191c7fca666b44