2 回答

TA貢獻1824條經驗 獲得超6個贊
在書中的代碼中,每套西裝都有每一個價值——它是西裝和價值的笛卡爾積。在您的代碼中,您只需要從學生到成績的一對一映射。這通常使用 zip()
完成。您可以使用,這將為您提供相應的對。然后,您可以獲取以下列表:zip(self.names, self.grades)
Students
self._stud=[Student(n, g) for n, g in zip(self.names, self.grades)]
您也可以將班級設置為不依賴于全局變量,并使用如下內容獲取學生和成績列表:
import collections
Student = collections.namedtuple('Student',['name','grade'])
studentname = ["John","Jay","Joe","Joseph"]
grades = [89,98,87,91]
class Grades:
def __init__(self, names, grades):
self._stud = [Student(n, g) for n, g in zip(names, grades)]
def __len__(self):
return len(self._stud)
def __getitem__(self,position):
return self._stud[position]
g = Grades(studentname, grades)
g._stud將是:
[
Student(name='John', grade=89),
Student(name='Jay', grade=98),
Student(name='Joe', grade=87),
Student(name='Joseph', grade=91)
]

TA貢獻1802條經驗 獲得超5個贊
這與命名元組沒有任何關系。使用卡,您可以使用 和 的每個元素創建一個新實例。Card
ranks
suits
對于 ,您希望使用壓縮結果中的每個元素并一起創建一個新實例。grade
Student
names
grades
def __init__(self): self._stud=[Student(name,grade) for name, grade in zip(self.names, self.grades)]
添加回答
舉報