python - 多个列表的字典

标签 python python-2.7

我有一个这样的列表:

list=[[21768L, u'2'], [1746L, u'2'], [2239L, u'2'],[2239L, u'2'], [1965L, u'2'],[1965L, u'2'], [2425L, u'1'], [2425L, u'1'],[2056L, u'1']]

如何以这样的字典形式获取上述列表:

d={u'1':[2425L,2],[2056L,1] , u'2': [21768L, 1],[1746L,1],[2239L,2],[1965L,2]}

最佳答案

使用 defaultdictCounter,它们都来自 collections 模块:

from collections import defaultdict, Counter

d = defaultdict(Counter)

for value, key in yourlist:
    d[key].update([value])

这给了你稍微不同的结构:

defaultdict(<class 'collections.Counter'>, {u'1': Counter({2425L: 2, 2056L: 1}), u'2': Counter({1965L: 2, 2239L: 2, 21768L: 1, 1746L: 1})})

但可以按摩到更接近您要寻找的东西:

d = {key: value.most_common() for key, value in d.iteritems()}

给出:

{u'1': [(2425L, 2), (2056L, 1)], u'2': [(1965L, 2), (2239L, 2), (21768L, 1), (1746L, 1)]}

关于python - 多个列表的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786648/

相关文章:

Python跨模块全局变量

python - 导入错误 : No module named jinja2

python - 如何让一只 turtle 向另一只 turtle 的位置移动?

python - 打印给定字符串中两个特定单词之间的单词

python - 如何将张量元素划分为特定索引

Python:使用 HDF5 格式的不完整成对相异矩阵运行多维缩放

python - 如何使用 glXChooseFBConfig 和 ctypes 模块初始化 OpenGL?

python - 有没有办法将笔记本的标签设置在彼此下方?

用于创建 Google 项目的 Python 代码

python - 将数组参数传递给 SQL 命令