Python dict 键按列表排序为值

标签 python list

我有一个这样的字典列表,每个字典键的值是一个列表,

[{'mike':[500,1000,1500,2750,3000]},{'john':[750,1250,2000]},{'luke':[600,1100]}]

列表中字典的数量会有所不同。

我怎样才能得到这样的输出, 每个dict值按升序排列

500:mike
600:luke
750:john
1000:mike
1100:luke
1250:john
1500:mike
2000:john
2750:mike
3000:mike

最佳答案

一个类轮:

result = sorted(((item, key) for d in x for (key, value) in d.items() for item in value), key=lambda x: x[0])

for elem in result:
    print ({elem[0]}:{elem[0]}.format(elem=elem)

多线:

x = [{"mike":[500,1000,1500,2750,3000]},{"john":[750,1250,2000]},{"luke":[600,1100]}]
result = []
for item in x:
    for key, value in item.iteritems():
        for v in value:
            result.append((v, key))
result.sort(key=lambda x: x[0])
for elem in result:
    print ({elem[0]}:{elem[0]}.format(elem=elem)

# outputs
500:mike
600:luke
750:john
1000:mike
1100:luke
1250:john
1500:mike
2000:john
2750:mike
3000:mike

关于Python dict 键按列表排序为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37573373/

相关文章:

python - 在作业文件中加载 virtualenv 以在 linux 集群上运行

java - 如何在抽象类型的 java 中初始化 List,以便以后可以将子类型添加到列表中

Java 比较两个相同大小的字符串列表,其中顺序很重要

python - 如何解决 PyTest 中的陈旧元素异常

python - 将 CSV 数据导入 scikit-learn?

list - Erlang:元组列表列表的排序或排序函数

python - 创建具有相似拼写的 pandas 数据框变量名称列表

python - 在列表中查找元素

Python 中的 vs ==。在这种情况下使用哪个?

python - 强制 python 将十六进制显示为十六进制