簡體   English   中英

如何從列表創建對象?

[英]How do I create objects from lists?

假設我有兩個列表,第一個名為 studentName

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

第二個被命名為studentGrade

studentGrade = [100,88,74,94]

我還有一個名為“學生”的 class

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

如何在不使用以下常用方法的情況下創建對象:

Jack = Students("Jack",100)

我想做同樣的事情,但不必輸入 4 行。 相反,我想在列表中使用循環。 這可能嗎?

您可以使用zip一次迭代兩個列表; 我還建議您將 class 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM