我有一個這樣的嵌套串列理解:
self.Item = [[Object(x, y) for y in range(3)] for x in range(3)]
現在我需要做同樣的事情,但是 Object 有第三個引數:Index(它只是一個 int 0-9,連續)。
self.Item = [[Object(x, y, index) for y in range(3)] for x in range(3)]
我發現的解決方案使用了 enumerated(),但我發現用兩個串列很難實作。
uj5u.com熱心網友回復:
試試這個:
z=0
L = []
for x in range(3):
for y in range(3):
L.append(Object(x,y,z))
z =1
就個人而言,對于這樣的用例,我傾向于發現itertools非常有用,而不是嵌套的 for 回圈。您可以向您添加更多迭代器,itertools.product而無需擔心噩夢般的嵌套回圈。
import itertools
L=[]
z=0
for X in itertools.product(range(3),range(3)):
L.append(Object(X[0],X[1],z))
z =1
我只是不會做你上面的事情。拆分您的代碼,使其在未來的可讀性和可除錯性提高 100 倍。像這樣的代碼感覺很有趣和 Pythonic,但它是一個糟糕的主意。
uj5u.com熱心網友回復:
使用無限迭代器:
from itertools import count
index = count()
self.Item = [[Object(x, y, next(index)) for y in range(3)] for x in range(3)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/340911.html
上一篇:回傳串列的公共函式c#
