【问题标题】:How to create multiple class objects and pass arguments with loop in Python?如何在 Python 中创建多个类对象并使用循环传递参数?
【发布时间】:2021-05-13 12:29:27
【问题描述】:

这是一组数据,

obj = [[A, B, 2], [D, A, 5] ,[B, C, 3]]

我想把它存储在下面的类对象中

class Map():
 def __init__(self,start,destination,cost):
        self.start = start
        self.destination = destination
        self.cost = cost

我想用 for 循环将 obj 存储在下面这样的地方

obj[0].start = A
obj[0].destination = B
obj[0].cost = 2
....
obj[2].start = B
obj[2].destination = C
obj[2].cost = 3

有人可以帮忙吗?

【问题讨论】:

    标签: python python-2.7 loops constructor


    【解决方案1】:

    一个简单的列表推导就可以解决问题。

    obj = [Map(x, y, z) for x, y, z in obj]
    

    您遍历原始列表,解压缩每个子列表,然后对每组值调用 Map

    更简单的是,您可以让 Python 为您解包子列表。

    obj = [Map(*args) for args in obj]
    

    import itertools
    obj = list(itertools.starmap(Map, obj))
    

    【讨论】:

      【解决方案2】:

      使用列表:

      maps = []
      for object in obj:
          maps.append(Map(object[0], object[1], object[2]))
      

      【讨论】:

        猜你喜欢
        • 2014-03-03
        • 2021-10-06
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 2011-12-22
        • 1970-01-01
        • 2018-11-12
        • 1970-01-01
        相关资源
        最近更新 更多