import collectionsCard = collections.namedtuple('Card', ['rank', 'suit'])# suit 花色
# rank 牌面大小
class FrenchDeck:ranks = [str(x) for x in range(2, 11)] + list('JQKA')suits = 'spades diamonds clubs hearts'.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, item):return self.cards[item]new = FrenchDeck()
print(len(new)) # 纸牌个数
print(new.cards) # 所有纸牌
print(new[0]) # 第一个纸牌
print(random.choice(new)) # 随机抽取一个纸牌
print(new[:3]) # 切片 前三张牌
print(new[12::13]) # 切片 先抽出索引12的牌,再没隔13张牌拿一个suits_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)def card_values(card):"""纸牌的大小"""rank_index = FrenchDeck.ranks.index(card.rank)return rank_index * len(FrenchDeck()) + suits_values[card.suit]# 按照大小,花色排序
for x in sorted(new, key=card_values):print(x)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!