Python 使用包含字典值的元素对列表进行排序

Python 使用包含字典值的元素对列表进行排序,python,list,sorting,dictionary,Python,List,Sorting,Dictionary,我试图用卡片等级建立一个排序系统,它们的值是从一个单独的字典中获得的。在一副52张牌的简单牌组中,我们有2到Ace等级,在这种情况下,我想要一个等级系统,其中0是10,J是11,Q是12,K是13,a是14,2是15,其中2是最大值等级。问题是,如果有一个列表,我想根据编号系统按升序对等级卡进行排序,我该怎么做 例如,这里有一个列表,[3,5,9,7,J,K,2,0],我想将列表排序为[3,5,7,9,0,J,K,2]。我还为编号系统制作了一本字典,名为{'a':14,'K':13,'J':11

我试图用卡片等级建立一个排序系统,它们的值是从一个单独的字典中获得的。在一副52张牌的简单牌组中,我们有2到Ace等级,在这种情况下,我想要一个等级系统,其中0是10,J是11,Q是12,K是13,a是14,2是15,其中2是最大值等级。问题是,如果有一个列表,我想根据编号系统按升序对等级卡进行排序,我该怎么做

例如,这里有一个列表,
[3,5,9,7,J,K,2,0]
,我想将列表排序为
[3,5,7,9,0,J,K,2]
。我还为编号系统制作了一本字典,名为
{'a':14,'K':13,'J':11,'Q':12,'0':10,'2':15}

谢谢你已经试过了吗

sorted(list\u用于排序,key=dictionary\u您编写的。\uuuu getitem\uuuuuuuuu)

这个答案有效:

    sorted(list_for_sorting, key=dictionary_you_wrote.__getitem__)
这也包括:

    sorted_list = sorted(unsorted_list, key = lambda k: your_dictionary[k])
排序函数使用第一个参数(要排序的对象)中的每个条目调用第二个参数。这样,lamda函数就可以从字典中返回给定项的值,并将其用作键

如果任何列表项不在您的_dictionary.keys()中,这将不起作用。要么完成字典,要么使用

    sorted(unsorted_list, key = lambda k: your_dictionary[k] if k in your_dictionary.keys() else k)

到目前为止,你有什么代码?写你写的
key=dictionary\u通常比较整洁。获取
等等。。。对于“your_dictionary”部分,这是正确获取数字值的字典?非常感谢!很抱歉,由于数字“3”不是字典中的键,因此这不起作用,因为存在键错误。如果未排序列表中的元素不在字典中,我们如何排除它们?完成字典比从lamda函数中排除元素要好。