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)]