我想将 dataset 列表,其中行由不同的列表组成,转换为 newDataset 列表,其中每一行由一个列表组成,该列表由每个元素组成dataset 列表的不同列表。
dataset = [
[[2,3,1],[1,2,9],[1,3,8]],
[[1,4,1],[1,2,10],[9,3,1]],
[[1,4,0],[1,4,9],[2,5,8]],
]
newDataset = [
[2, 3, 1, 1, 2, 9, 1, 3, 8],
[1, 4, 1, 1, 2, 10, 9, 3, 1],
[1, 4, 0, 1, 4, 9, 2, 5, 8]
]
我想出了以下代码行:
from itertools import chain
newDataset = [list(chain(*x)) for x in dataset]
但是,我想还有更 Pythonic 的方式吗?
另一个相关问题: 我如何生成 newDataset2,其中每一行都包含一行不同列表的第一个元素?
newDataset2 = [
[2,1,1],
[1,1,9],
[1,1,2],
]
请您参考如下方法:
itertools.chain(*x)
更好地表达为
itertools.chain.from_iterable(x)
但其他方面都很好。
此外,
>>> [[x[0] for x in y] for y in dataset]
[[2, 1, 1], [1, 1, 9], [1, 1, 2]]
