python - 从列表 Python 列表中的特定点循环
问题描述
我想在特定点之后将现有列表列表的所有元素附加到新列表
m = [[1,2,3],[4,5,10],[6,2,1]]
specific point = m[0][2]
newlist = [3,4,5,10,6,2,1]
解决方案
这里有几个函数式方法可以有效地迭代你的数据。
如果子列表大小均匀,并且您知道从哪里开始提取元素的索引,请使用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)
这假设在序列的前面没有相同的值。
推荐阅读
- windows - 在 GIT_SSH_COMMAND 中使用 TortoisePLink:不遵守“-batch”开关
- visual-studio-code - “未知配置设置”VSCode 灰显
- task-parallel-library - 使用 TPL Dataflow,如何在中间以 BatchBlock 组合工作流并返回到单个项目块?
- python - 具有相同键 PYTHON 的嵌套字典的总和值
- python - “找不到满足要求的版本。找不到与 tensorflow 匹配的分布。”
- javascript - 剑道网格寻呼机按钮消失
- linux - 如何计算 Linux 上的 PostgreSQL 内存使用量?
- .net - Windows 10 3D 查看器的启动参数
- clang - clang 中 -mtune=native 的等价物是什么?
- c# - 如何创建谓词
在运行时动态