我試圖分組複雜的嵌套元組,以便組合在列表中相同位置的元素。例如:分組的可變長度嵌套元組列表
original_list = [(("input00", "input01",...), "target0"),
(("input10", "input11",...), "target1"), ...]
應該成爲:
grouped = [(["input00", "input10",...],
["input01", "input11",...]),
["target0", "target1",...]]
目的是組一起(到一個列表),其發生在同一位置的元素。 type(grouped)
本身可以是tuple
或list
(我認爲它應該很容易從一個元組轉換爲列表,無論如何)。例如,"input00"
是original_list[0][0][0]
。我想把指數original_list[X][0][0]
(X = len(original_list)
)上的所有內容都放到一個列表中(所以"input00"
和"input10"
等)。
我想爲original_list[X][0][1]
中的元素做同樣的事情,更一般地爲original_list[X][0][N]
,其中N = len(original_list[X][0])
。部分原因是我難以實現這一點,因爲我很難用算法術語思考這個問題;如果您查看上面的第一個代碼塊,我直觀地只想將「同一列」中的所有內容分組在一起。
我試過弄平了這個,然後做了某種產品,但是它有點複雜,因爲"target0"
,"target1"
佔用的位置也不在嵌套元組中。另外,「輸入」元組長度可以有無限的事實給我帶來一些麻煩。
事情我已經嘗試過(我嘗試了一大堆那人甚至還沒有接近在給予正確解決其他的事情,所以我會在這裏省略掉):
In: list(itertools.chain(*original_list))
Out: [('input00', 'input01'), 'label0', ('input10', 'input11'), 'label1']
向誰投降:你能解釋一下我怎樣才能更好地解決這個問題嗎? –
你能否試着更好地解釋你的列表格式?什麼是「元組索引」? – lolopop
顯示您嘗試的代碼和這些嘗試的輸出。 – Prune