我有一个字符串列表:
cards = ['2S', '8D', '8C', '4C', 'TS', '9S', '9D', '9C', 'AC', '3D']
以及我想要显示卡片的顺序:
CARD_ORDER = ['2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A']
这就是我尝试订购列表的方式:
sorted(cards, lambda x,y: CARD_ORDER.index(x[0]) >= CARD_ORDER.index(y[0]) )
不幸的是,这似乎不起作用......
或者更确切地说,列表保持完全相同,sorted(cards)
可以正常工作。
有什么想法吗?
答案 0 :(得分:8)
它是
sorted(cards, key=lambda x: CARD_ORDER.index(x[0]))
key
参数接受单个值,通过该值对主迭代进行排序。您可能正在尝试使用cmp
参数,该参数在相当长的一段时间内不推荐使用。
答案 1 :(得分:2)
尝试
sorted(cards, key = lambda x: CARD_ORDER.index(x[0]) )