gpt4 book ai didi

python - 如何按数字顺序对字典进行排序?

转载 作者:太空宇宙 更新时间:2023-11-04 09:27:13 25 4
gpt4 key购买 nike

我的输出类似于下面的字典。

dict = {"1":df1,"10":df2,"11":df11,"4":df4,'5':df5,"6":df6}

我想按照键的数字顺序重新排列字典的顺序,如下所示。

dict = {1":df1,"4":df4,'5':df5,"6":df6,"10":df2,"11":df11}

我试过了

OrderedDict(sorted(dict .items()))

然而,这并没有奏效。有人知道怎么做吗?

谢谢。

最佳答案

问题是字符串是按字典顺序排序的。所以这意味着 '1' < '10' < '2' .然而,我们可以通过映射到 int 来解决这个问题。 ,比如:

OrderedDict(sorted(<i>mydict</i>.items()<b>, key=lambda t: int(t[0])</b>))

这将产生如下所示的结果:

>>> OrderedDict(sorted(mydict.items(), key=lambda t: int(t[0])))
OrderedDict([('1', df1), ('4', df4), ('5', df5), ('6', df6), ('10', df2), ('11', df11)])

注意自 , 词典使用插入顺序,因此不需要使用 OrderedDict .作为@chepner说,仍然存在细微差别,因为“OrderedDict 中的键顺序会影响 equality,但不会影响字典。”。

Note: please do not use dict as variable name, since this will override the reference to the dict class.

关于python - 如何按数字顺序对字典进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57127309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com