【发布时间】:2021-04-04 13:56:43
【问题描述】:
我是一名一年级的 A-Level 学生,我正在尝试对下面的列表进行排序,这代表了纸牌游戏 Rummy 中的一手牌:
hand = [(1, '-', '3', 'Spades'), (2, '-', '8', 'Clubs'), (3, '-', '10', 'Hearts'), (4, '-', 'Ace', 'Spades'), (5, '-', '7', 'Clubs'), (6, '-', 'Queen', 'Diamonds'), (7, '-', '10', 'Spades')]
我希望它按字母顺序排序(梅花、梅花、方块、红心、黑桃、黑桃、黑桃),如果花色相同,则价值最低的牌(Ace 最低,King最高)首先出现。排序后,index[0] 值(在程序的其他部分中选择一张卡时只是为每张卡提供参考编号)应该基本上重新分配,以便它们再次按从 1 到 7 的顺序读取。我希望它输出如下:
[(1, '-', '7', 'Clubs'), (2, '-', '8', 'Clubs'), (3, '-', 'Queen', 'Diamonds'), (4, '-', '10', 'Hearts'), (5, '-', 'Ace', 'Spades'), (6, '-', '3', 'Spades'), (7, '-', '10', 'Spades')]
我想过尝试做这样的事情:
suit_hand = (hand[0][4], hand[1][4], hand[2][4], hand[3][4], hand[4][4], hand[5][4], hand[6][4])
arr = sorted(suit_hand)
然后对卡片值使用标准排序算法,可能是插入排序,但我不确定如何执行它。
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
这能回答你的问题吗? sorting list of cards
-
@HåkenLid 这个问题与我的问题类似,是的,不幸的是,答案对我来说有点复杂,我只是 A-Level 一年级的学生!