【问题标题】:Creating a list of objects from a list of lists从列表列表创建对象列表
【发布时间】:2017-06-26 18:21:10
【问题描述】:

我刚刚开始学习 Python。我有一个列表列表,其中每个元素都是一个列表,看起来像这样:['1','2','3']。我创建了一个这样的类:

class Car(object):
    def __init__(self, a, b=0, c=0):
        self.a = a
        self.b = b
        self.c = c
    def setABC(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

如何创建一个新列表,其中每个元素都是此类的一个实例,而不是原始列表成员?

我已经尝试过类似的方法,但显然它不起作用:

cars = cars.append(Car(cars[0], cars[1], cars[2]))

另外,我试过这个:

cars = [Car(x.a, x.b, x.c) for x in cars]

【问题讨论】:

    标签: python list oop object


    【解决方案1】:

    您应该解压缩嵌套列表以创建类对象。您可以使用 list comprehension 创建 Car 对象列表:

    cars = [Car(*props) for props in properties_list]
    

    其中properties_list 是包含您要用来创建汽车的属性的列表。

    例如,如果properties_list 是这样的:

    properties_list = [[1, 2, 3], [4, 5, 6]]
    

    然后cars 将保存Car 对象列表为:

    cars = [
        Car(a=1, b=2, c=3),
        Car(a=4, b=5, c=6)
    ]
    

    【讨论】:

    • 感谢您的解释,这就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2020-03-01
    • 2018-01-02
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多