zoukankan      html  css  js  c++  java
  • python的具名元组和sorted函数

     1 import collections
     2 Card = collections.namedtuple('Card', ['rank', 'suit'])
     3 #定义一个具名元组 第一个参数是元组的名字,第二个参数是一个字段名组成的列表
     4 #Card._fields 获取字段名的列表
     5 #Card._make(_data) 实例化一个具名元组 _data一个和fields长度相同的一个元组
     6 #Card._asdict() 获得一个字典字段名 == 值
     7 
     8 class FrenchDeck(object):
     9     ranks = [str(n) for n in range(2, 11)] + list('JQKA') #获取所有牌列表2--A
    10     suits = 'spades diamonds clubs hearts'.split()   #获取花色列表
    11 
    12     def __init__(self):
    13         self._cards = [Card(rank, suit) for suit in self.suits
    14                        for rank in self.ranks]  #获取组合列表
    15 
    16     def __len__(self):
    17         return len(self._cards)
    18 
    19     def __getitem__(self, position):
    20         return self._cards[position]
    21 
    22 
    23 beer_card = Card('7', 'diamonds') #得到一个花色为diamonds,数值为7的牌
    24 print(beer_card)
    25 deck = FrenchDeck()
    26 print(deck)  #获取52张牌的集合
    27 print(deck[0]) #打印第一张牌
    28 suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)
    29 def spades_high(card):
    30     rank_value = FrenchDeck.ranks.index(card.rank) #获取数值排序
    31     return rank_value * len(suit_values) + suit_values[card.suit] #返回数值+花色的排序
    32 
    33 for card in sorted(deck, key=spades_high): # 对卡牌做排序 然后循环
    34     print(card)
    35 
    36 
    37 
    38 # sorted方法:
    39 sorted(deck,key=spades_high,reverse=True)
    40 # deck可迭代对象
    41 # reverse参数  排序规则为True是逆序
    42 # key一个函数,函数的参数是deck中被迭代的值
  • 相关阅读:
    redies安装
    跟我一起学koa之在koa中使用mongoose(四)
    mongoDB可视化工具RoBo 3T的安装和使用
    跟我一起了解koa之koa洋葱圈模型(二)
    跟我一起了解koa之koa的cookie(三)
    跟我一起了解koa之koa-generator(一)
    2进制数转成10进制
    koa中同步与异步的写法
    bootstrap-内联表单 水平(横向)表单 响应式图片 辅助类 [转]
    Bootstrap 杂记
  • 原文地址:https://www.cnblogs.com/arrow-kejin/p/10104902.html
Copyright © 2011-2022 走看看