假设我有以下包含列表的列表列表:
samples = [
# First sample
[
# Think 'x' as in input variable in ML
[
['A','E'], # Data
['B','F'] # Metadata
],
# Think 'y' as in target variable in ML
[
['C','G'], # Data
['D','H'], # Metadata
]
],
# Second sample
[
[
['1'],
['2']
],
[
['3'],
['4']
]
]
]
我要的输出如下所示:
>>> samples
[
['A','E','1'], # x.data
['B','F','2'], # x.metadata
['C','G','3'], # y.data
['D','H','4'] # y.metadata
]
我的问题是
是否存在一种利用Python的方法
zip
函数和一些列表理解来实现这一点?
我已经寻找了一些解决办法,但是例如
this
和
this
处理使用
拉链
处理不同的列表,而不是内部列表。
实现这一点的一种方法很可能是对样本进行简单的迭代,如下所示:
x,x_len,y,y_len=[],[],[],[]
for sample in samples:
x.append(sample[0][0])
x_len.append(sample[0][1])
y.append(sample[1][0])
y_len.append(sample[1][1])
samples = [
x,
x_len,
y,
y_len
]
我仍然好奇是否有一种方法可以利用。
拉链
结束
for
循环样本及其嵌套列表。
请注意
data
和
metadata
可以在不同的样本长度上变化。