2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
在書中的代碼中,每套西裝都有每一個(gè)價(jià)值——它是西裝和價(jià)值的笛卡爾積。在您的代碼中,您只需要從學(xué)生到成績的一對(duì)一映射。這通常使用 zip()
完成。您可以使用,這將為您提供相應(yīng)的對(duì)。然后,您可以獲取以下列表:zip(self.names, self.grades)
Students
self._stud=[Student(n, g) for n, g in zip(self.names, self.grades)]
您也可以將班級(jí)設(shè)置為不依賴于全局變量,并使用如下內(nèi)容獲取學(xué)生和成績列表:
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貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
這與命名元組沒有任何關(guān)系。使用卡,您可以使用 和 的每個(gè)元素創(chuàng)建一個(gè)新實(shí)例。Card
ranks
suits
對(duì)于 ,您希望使用壓縮結(jié)果中的每個(gè)元素并一起創(chuàng)建一個(gè)新實(shí)例。grade
Student
names
grades
def __init__(self): self._stud=[Student(name,grade) for name, grade in zip(self.names, self.grades)]
添加回答
舉報(bào)