Python 如何将列表元素中的参数赋给类?

Python 如何将列表元素中的参数赋给类?,python,Python,我试图给一个类提供几个列表中的参数。 我试过这些: for i in range(len(myList)): # or just myList myList.append(MyClass(names[i], cities[i], ages[i], problems[i])) 或 但它不起作用,当我打印我的列表时没有错误,它只是空的。我可能犯了一个错误的逻辑,但我无法理解它。您需要使用其中一个填充了数据的列表的长度。如果在for循环开始之前myList为空,它将迭代零次,因为len(my

我试图给一个类提供几个列表中的参数。 我试过这些:

for i in range(len(myList)): # or just myList
    myList.append(MyClass(names[i], cities[i], ages[i], problems[i]))


但它不起作用,当我打印我的列表时没有错误,它只是空的。我可能犯了一个错误的逻辑,但我无法理解它。

您需要使用其中一个填充了数据的列表的长度。如果在for循环开始之前myList为空,它将迭代零次,因为len(myList)==0

例如,对范围内的i(名称):使用
。假设您的数据列表(
名称
城市
年龄
问题
)具有相同的长度。

您可以编辑这些列表

result = []
for data in zip(names, cities, ages, problems):
    name = data[0]
    city = data[1]
    age = data[2]
    problem = data[3]
    result.append(MyClass(name, city, age, problem))
让我们使用这种方法进行元组解包

result = []
for name, city, age, problem in zip(names, cities, ages, problems):
    result.append(MyClass(name, city, age, problem))
所有这些都可以使用列表理解写在一行中

result = [MyClass(name, city, age, problem) for name, city, age, problem in zip(names, cities, ages, problems)]
或者让Python为您解包元组

result = [MyClass(*data) for data in zip(names, cities, ages, problems)]
result = [MyClass(*data) for data in zip(names, cities, ages, problems)]