在Python中,如何按另一个列表的索引号对列表进行排序?

2024-10-02 14:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中按值对字典排序时,我们使用lambda func。但我在列表中尝试了这种方法,而不是使用另一个列表索引号。对于我的问题,这可能是一个简短的str函数/方法

以下是一个例子:

cardsorder = ['2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A']
colors = ['C', 'D', 'S', 'H']
handEx = ['8C','TS','KC','9H','4S']

我想使用cardsorder索引号对我的handEx列表元素进行排序。 首先,我扫描每个元素,找到要排序的值:

for card in handEx:
    value = cardsorder.index(card[0])

通过使用这些值,我可以通过比较其他值对元素进行排序,但我认为要找到解决方案还有很长的路要走。 是否有更简单的解决方案,例如使用lambda函数


Tags: 方法lambda函数元素列表字典排序解决方案
1条回答
网友
1楼 · 发布于 2024-10-02 14:29:45

你很接近。只需创建一个与value等价的键函数:

>>> sorted(handEx, key=lambda card: cardsorder.index(card[0]))
['4S', '8C', '9H', 'TS', 'KC']

或在适当的地方:

handEx.sort(key=lambda card: cardsorder.index(card[0]))

顺便说一下,我发布了一个类似的答案

相关问题 更多 >