gpt4 book ai didi

Python - 按不均匀列表对元组列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:37 24 4
gpt4 key购买 nike

我有一副由以下代码构建的纸牌:

import itertools

suits = "DCHS"
ranks = "23456789TJQKA"

cardDeck = list(set(itertools.product(ranks, suits)))

我想按等级对一副牌进行排序。执行 sorted(cardDeck, key=lambda x: x[0]) 按字母顺序排列列表 (23456789AJKQT),但我想找到一种方法来保持排列顺序 (23456789TJQKA)。

我一直在尝试为 key= 参数获取一个 lambda 函数,该函数将遍历 ranks 字符串中的字符,但到目前为止我遇到了困难。也许我需要制作字符的西装和等级列表而不是字符串?

最佳答案

您的 ranks 列表中已经有了排名。只需在您的分拣机中使用它:

print sorted(cardDeck, key=lambda x: ranks.index(x[0])) 

可以看到full thing here:

import itertools

suits = "DCHS"
ranks = "23456789TJQKA"

cardDeck = list(set(itertools.product(ranks, suits)))

print sorted(cardDeck, key=lambda x: ranks.index(x[0]))

给予:

[('2', 'S'), ('2', 'C'), ('2', 'H'), ('2', 'D'), ('3', 'D'), ('3', 'H'), ('3', 'C'), ('3', 'S'), ('4', 'D'), ('4', 'S'), ('4', 'C'), ('4', 'H'), ('5', 'H'), ('5', 'S'), ('5', 'D'), ('5', 'C'), ('6', 'C'), ('6', 'D'), ('6', 'H'), ('6', 'S'), ('7', 'C'), ('7', 'D'), ('7', 'S'), ('7', 'H'), ('8', 'S'), ('8', 'C'), ('8', 'H'), ('8', 'D'), ('9', 'H'), ('9', 'S'), ('9', 'D'), ('9', 'C'), ('T', 'H'), ('T', 'C'), ('T', 'D'), ('T', 'S'), ('J', 'S'), ('J', 'C'), ('J', 'H'), ('J', 'D'), ('Q', 'H'), ('Q', 'C'), ('Q', 'D'), ('Q', 'S'), ('K', 'S'), ('K', 'H'), ('K', 'D'), ('K', 'C'), ('A', 'S'), ('A', 'D'), ('A', 'H'), ('A', 'C')]

关于Python - 按不均匀列表对元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35282170/

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