我一直在寻找一种方法来在 Python 中用它的值对字典进行排序,经过几次尝试,结果是这样的:
a = {<populated dict...>}
a = {v: k for k, v in a.items()}
a = {v: k for k, v in sorted(a.items())}
这段代码似乎有效,但我认为它的性能很差,有没有更好的方法?
原文由 Giuseppe 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直在寻找一种方法来在 Python 中用它的值对字典进行排序,经过几次尝试,结果是这样的:
a = {<populated dict...>}
a = {v: k for k, v in a.items()}
a = {v: k for k, v in sorted(a.items())}
这段代码似乎有效,但我认为它的性能很差,有没有更好的方法?
原文由 Giuseppe 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不需要进行双键/值交换,您可以这样做:
a = {k: v for k, v in sorted(a.items(), key=lambda x: x[1])}
( 排序文档)
data = dict(a=1, b=3, c=2)
print(data)
data_sorted = {k: v for k, v in sorted(data.items(), key=lambda x: x[1])}
print(data_sorted)
来自 CPython 3.6:
{'a': 1, 'b': 3, 'c': 2}
{'a': 1, 'c': 2, 'b': 3}
原文由 Stephen Rauch 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答4.3k 阅读✓ 已解决
2 回答852 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答840 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.5k 阅读
3 回答894 阅读✓ 已解决
默认情况下,字典是根据键排序的,但是排序函数将一个函数作为参数,您可以使用该函数更改程序的行为。