首页 > 解决方案 > 从列表 Python 列表中的特定点循环

问题描述

我想在特定点之后将现有列表列表的所有元素附加到新列表

m = [[1,2,3],[4,5,10],[6,2,1]]
specific point = m[0][2]
newlist = [3,4,5,10,6,2,1]

标签: pythonlistnested-listsflatten

解决方案


这里有几个函数式方法可以有效地迭代你的数据。

如果子列表大小均匀,并且您知道从哪里开始提取元素的索引,请使用chain+ islice

from itertools import chain, islice
n = 3 # Sublist size.
i,j = 0,2
newlist = list(islice(chain.from_iterable(m), i*n + j, None))

如果您事先不知道子列表的大小,可以使用next丢弃数据的第一部分。

V = chain.from_iterable(m)
next(v for v in V if v == m[i][j])
newlist = list(V)
newlist.insert(m[i][j], 0)

这假设在序列的前面没有相同的值。


推荐阅读