我试图分组复杂的嵌套元组,以便组合在列表中相同位置的元素。例如:分组的可变长度嵌套元组列表
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