【发布时间】:2014-07-13 10:43:19
【问题描述】:
给定一个列表和一个字典,格式如下:
l = ["2D", "5H", "8S", "JC", "3H", "4S", "8C", "AD"]
d = {"3":1, "4":2, "5":3, "6":4, "7":5,
"8":6, "9":7, "0":8, "J":9, "Q":10,
"K":11, "A":12, "2":13}
如何根据字典中的值对列表进行排序?
我尝试使用sorted 和lambda 函数对其进行排序:
sorted(l, key=lambda x: d[x])
什么是错误?或者还有其他更好的排序方式吗?
谢谢你告诉我。
【问题讨论】:
-
不要将其命名为列表...但是您的示例应该满足您的要求...
-
请注意,
sorted不会对列表进行就地排序,它会返回已排序的列表的新副本...result = sorted(...)。请参阅bytes.com/topic/python/answers/803447-sorted-sort 了解更多信息 -
列表中的元素
["2D","5H",...]不在您的字典中。你会得到关键错误。 -
是的,我遇到了一个关键错误。那么如何解决呢?
标签: python sorting dictionary lambda