按 Python 中的值对 python dict 进行排序 3.7

Sorting python dict by value in Python 3.7

我有一个类似下面的字典:

d = {"string0": 0, "string2": 2, "string1": 1}

我想按 int 值对其进行排序,以便它像:

d = {"string0": 0, "string1": 1, "string2": 2}

我知道我可以在内置函数 sorted() 的帮助下对列表进行排序,并使用 lambda 函数指定 key 参数,如下所示:

sorted_d = {k: v for k, v in sorted(d.items(), key=lambda i: i[1])}
       

但由于某种原因它似乎不起作用,字典仍然是原来的。

您的密钥 1[1] 无效 Python。你想要i[1]。这个改变就可以了。

你可以关注这个答案

Click here

或者使用这个:

d = {"string0": 0, "string2": 2, "string1": 1}
sorted_x = sorted(d.items(), key=lambda kv: kv[1])
print(sorted_x)