python sorted key=函數


import collections
from random import choice

Card = collections.namedtuple("Card", ["rank", "suit"])

class FrenchDeck:
ranks = [str(n) for n in range(2,11)] + list("JQKA")
suits = "spades diamonds clubas 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, position):
return self._cards[position]

deck = FrenchDeck()

suit_values = dict(spades=3, diamonds=1, clubas=0, hearts=2)

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):
print card

sorted(deck, key=spades_high)詳解:
deck 運行  __len__   然后循環deck 里面的值 傳給spades_high 當值 sortd 會根據函數spades_high返回的值的大小進行排序








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM