>>> from frenchdeck import FrenchDeck, Card >>> beer_card = Card('7', 'diamonds') >>> beer_card Card(rank='7', suit='diamonds') >>> deck = FrenchDeck() >>> len(deck) 52 >>> deck[:3] [Card(rank='2', suit='spades'), Card(rank='3', suit='spades'), Card(rank='4', suit='spades')] >>> deck[12::13] [Card(rank='A', suit='spades'), Card(rank='A', suit='diamonds'), Card(rank='A', suit='clubs'), Card(rank='A', suit='hearts')] >>> Card('Q', 'hearts') in deck True >>> Card('Z', 'clubs') in deck False >>> for card in deck: # doctest: +ELLIPSIS ... print(card) Card(rank='2', suit='spades') Card(rank='3', suit='spades') Card(rank='4', suit='spades') ... >>> for card in reversed(deck): # doctest: +ELLIPSIS ... print(card) Card(rank='A', suit='hearts') Card(rank='K', suit='hearts') Card(rank='Q', suit='hearts') ... >>> for n, card in enumerate(deck, 1): # doctest: +ELLIPSIS ... print(n, card) 1 Card(rank='2', suit='spades') 2 Card(rank='3', suit='spades') 3 Card(rank='4', suit='spades') ... >>> suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0) >>> def spades_high(card): ... rank_value = FrenchDeck.ranks.index(card.rank) ... return rank_value * len(suit_values) + suit_values[card.suit] Rank test: >>> spades_high(Card('2', 'clubs')) 0 >>> spades_high(Card('A', 'spades')) 51 >>> for card in sorted(deck, key=spades_high): # doctest: +ELLIPSIS ... print(card) Card(rank='2', suit='clubs') Card(rank='2', suit='diamonds') Card(rank='2', suit='hearts') ... Card(rank='A', suit='diamonds') Card(rank='A', suit='hearts') Card(rank='A', suit='spades')