如何从列表创建对象?

假设我有两个列表,第一个名为 studentName

studentName = ["Jack","Simon","John","Matthew"]

第二个被命名为 studentGrade

studentGrade = [100,88,74,94]

我还有一个名为“学生”的班级

class Students():
  def __init__(self,name,grade):
    self.name = name
    self.grade = grade

如何在不使用如下常用方法的情况下创建对象:

Jack = Students("Jack",100)

我想做同样的事情,但不必输入 4 行。相反,我想在列表中使用循环。这可能吗?

回答

您可以使用zip一次迭代两个列表来做到这一点;另外我建议你用Student单数来命名你的班级,因为它只代表一个人,而不是多个

studentName = ["Jack", "Simon", "John", "Matthew"]
studentGrade = [100, 88, 74, 94]
students = [Student(n, g) for n, g in zip(studentName, studentGrade)]

添加一个__repr__就可以看到结果了

class Students():
    def __init__(self, name, grade):
        self.name = name
        self.grade = grade    
    def __repr__(self):
        return f"{self.name}:{self.grade}"

if __name__ == '__main__':
    studentName = ["Jack", "Simon", "John", "Matthew"]
    studentGrade = [100, 88, 74, 94]
    students = [Students(n, g) for n, g in zip(studentName, studentGrade)]
    print(students)  # [Jack:100, Simon:88, John:74, Matthew:94]


以上是如何从列表创建对象?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>