tor*_*ger 1 python sorting dictionary list map
列表的示例列表:
[
["url","name","date","category"]
["hello","world","2010","one category"]
["foo","bar","2010","another category"]
["asdfasdf","adfasdf","2010","one category"]
["qwer","req","2010","another category"]
]
Run Code Online (Sandbox Code Playgroud)
我想做的是创建一个字典 - >类别:[条目列表].
结果字典将是:
{"category" : [["url","name","date","category"]],
"one category" : [["hello","world","2010","one category"],["asdfasdf","adfasdf","2010","one category"]],
"another category" : [["foo","bar","2010","another category"], ["qwer","req","2010","another category"]]}
Run Code Online (Sandbox Code Playgroud)
dict((category, list(l)) for category, l
in itertools.groupby(l, operator.itemgetter(3))
Run Code Online (Sandbox Code Playgroud)
这里最重要的是使用itertools.groupby.它只是返回迭代而不是列表,这就是为什么有一个调用list(l),这意味着如果你对它有好处,你可以简单地写dict(itertools.groupby(l, operator.itemgetter(3)))
newdict = collections.defaultdict(list)
for entry in biglist:
newdict[entry[3]].append(entry)
Run Code Online (Sandbox Code Playgroud)