gpt4 book ai didi

python - 按长度和值对列表列表进行排序

转载 作者:太空狗 更新时间:2023-10-29 21:29:44 24 4
gpt4 key购买 nike

我有一个列表列表:

>>> a = [['3D'], ['3D', '4D', '5D'], ['4C'], ['2C'],['4C', '4D'], ['4D'], ['5D'], \
... ['JC'], ['JC', 'JS'], ['JS']]

您可能会注意到这是卡片值,即 C= Clubs 等。J = Jack 等。我还有一个引用列表:

>>> confrom = {'3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, \
... '0':10, 'J':11, 'Q':12, 'K':13, 'A':14, '2':15}

因为我正在玩一个最大值为 2 的纸牌游戏。为了按列表的长度排序,我这样做:

>>> a = sorted(a, key = lambda x: len(x))
>>> a
... [['3D'], ['4C'], ['4D'], ['2C'], ['5D'], ['JC'], ['JS'], ['4C', '4D'], ['JC', 'JS'], ['3D', '4D', '5D']]

我还需要根据它们的字典值对它们进行排序,因此我的结果列表将是:

>>> [['3D'], ['4C'], ['4D'], ['5D'], ['JC'], ['JS'], ['2C'], ['4C', '4D'], ['JC', 'JS'], ['3D', '4D', '5D']]

目前这是一个非常简单的实现,但我希望能够以更复杂的方式对其进行排序。

最佳答案

试试这个:

sorted(a, key = lambda x: (len(x), [confrom[card[0]] for card in x]))

ideone

关于python - 按长度和值对列表列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10731038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com