我一直在寻找一种用Python中的值对字典进行排序的方法,经过几次尝试,结果如下:
a = {<populated dict...>}
a = {v: k for k, v in a.items()}
a = {v: k for k, v in sorted(a.items())}
这段代码似乎可以工作,但我认为它的性能很差,有更好的方法吗?
您不需要进行双键/值交换,您可以这样做:
a = {k: v for k, v in sorted(a.items(), key=lambda x: x[1])}
(排序的文档 https://docs.python.org/3/library/functions.html#sorted)
测试代码:
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)
Results:
从 CPython 3.6 开始:
{'a': 1, 'b': 3, 'c': 2}
{'a': 1, 'c': 2, 'b': 3}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)