- 自定义排序
import collections
Card = collections.namedtuple('Card',['rank','suit'])
class FrenchDeck:
# list类型
ranks = [str(n)for n in range(2,11)]+list('JQKA')
suits = '黑桃 方块 梅花 红心'.split()
def __init__(self):
self._cards =[Card(rank,suit)for suit in self.suits
for rank in self.ranks]
def __len__(self):
return (len(self._cards))
def __getitem__(self, position):
return self._cards[position]
suits_values = dict(黑桃=3,方块=2,梅花=1,红心=0)
def spades_high(card):
rank_value = FrenchDeck.ranks.index(card.rank)
b = suits_values[card.suit]
a = rank_value * len(suits_values) + suits_values[card.suit]
return b
def main():
desk = FrenchDeck()
for card in sorted(desk,key=spades_high):
print(card)
if __name__ == "__main__":
main()import collections
Card =