|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 wcq15759797758 于 2021-7-22 12:03 编辑
流畅的python第一章
- import collections
- Card = collections.namedtuple('Card',['rank','suit']) #创建对象规则
- class FrenchDeck: #创建类
- ranks = [str(n) for n in range(2,11)] + list('JOKA') #定义纸牌数字
- suits = 'spades diamonds clubs hearts'.split() #定义 黑桃 梅花 红桃 方片
- def __init__(self):
- self._cards = [Card(rank,suit)for suit in self.suits for rank in self.ranks] #创建纸牌 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] #可迭代编列纸牌
- deck = FrenchDeck()
- 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]
- for card in sorted(deck, key=spades_high): #调deck 以函数spades_higt 来排序
- print(card)
复制代码 |
|