我正在练习奥雷利的书《流利的蟒蛇》中的一段代码。
这段代码如下所示:
import collections
Card= collections.namedtuple('Card',['rank','suit']);
class FrenchDeck:
ranks=[str(n) for n in range (2,11)]+ list('JQKA')
suits= 'spades diamonds clubs hearts'.split()
def __init__(self):
self._cards= [Card(rank,suit) for rank in self.ranks
for suit in self.suits]
def __len__(self):
return len(self._cards)
def __getitem__(self,position):
return self._cards[position]
我可以看到如何使用命名tuple的功能将排名中的每个值分配给所有套装。
作为我自己的实践之一,我想寻求有关在此范式中分配值的帮助。具体来说,在此代码段中,与其给一个学生四个成绩,不如使用命名tuple功能为一个学生分配各自独特的成绩的方法是什么?(例如约翰-89,杰伊-98,乔-87,约瑟夫-91)。我从书中的样本中反刍的方式仍将把所有成绩分配给每个学生。非常感谢您的关注和帮助!
Student= collections.namedtuple('Student',['name','grade'])
studentname=["John","Jay","Joe","Joseph"]
class grade:
names= studentname
grades=[89,98,87,91]
def __init__(self):
self._stud=[
Student(name,grade) for name in self.names
for grade in self.grades ]
def __len__(self):
return len(self._stud)
def __getitem__(self,position):
return self._stud[position]
慕妹3242003
慕后森
相关分类