簡體   English   中英

如何創建多個 class 對象並在 Python 中使用循環傳遞 arguments?

[英]How to create multiple class objects and pass arguments with loop in Python?

這是一組數據,

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

我想將其存儲在以下 class object

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

任何人都可以幫忙嗎?

一個簡單的列表推導就可以解決問題。

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

使用列表:

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

暫無
暫無

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

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