我是通過我的一些舊的代碼閱讀和跨越這條線進來使用嵌套迭代器是否有意義?
itertools.starmap(lambda x,y: x + (y,),
itertools.izip(itertools.repeat(some_tuple,
len(list_of_tuples)),
itertools.imap(lambda x: x[0],
list_of_tuples)))
要清楚,我有一些list_of_tuples
從中我想要得到的第一個項目出來的每個元組(該itertools.imap
),我有另一個我想重複的元組(itertools.repeat
),以便list_of_tuples
中的每個元組都有一個副本,然後我想根據list_of_tuples
(itertools.starmap
)中的項獲取新的更長的元組。例如,假設some_tuple = (1, 2, 3)
和list_of_tuples = [(1, other_info), (5, other), (8, 12)]
。我想要類似[(1, 2, 3, 1), (1, 2, 3, 5), (1, 2, 3, 8)]
。這不是確切的IO(它使用了一些非常不相關和複雜的類),我的實際列表和元組非常大。
是否有點像這樣嵌套迭代器?在我看來,像itertools中的每個函數都必須迭代我給它的迭代器,並在某處存儲信息,這意味着將其他迭代器放在starmap
內部沒有任何好處。我完全錯了嗎?這個怎麼用?
如果您向我們展示預期的輸入和輸出將很好地映射您的工作 – Hackaholic
不,原因很簡單,它使代碼太難遵循。保持簡單 –
@gnibbler就像它可能,甚至刪除它仍然得到我們嵌套迭代器,所以除非刪除它改變了答案,我仍然想知道是否有一個點在嵌套一般 – Dannnno