python - 根据未知索引在子列表中切片列表
问题描述
根据包含索引的另一个列表,将列表(此处:lst_num)切成(多于两个)可变长度部分的最佳方法是什么?
必须将一串数字拆分为子列表,其中包含位于某个数字的所有后续出现之间的数字。例如: "30 24 17 30 22 1 67 2 4 3 30 24 95 34 29 56 30 43 24" 和 "30" 产生: [24, 17], [22, 1, 22, 1, 67, 2, 4, 3] 和 [24, 95, 34, 29, 56]
str_num="30 24 17 30 22 1 67 2 4 3 30 24 95 34 29 56 30 43 24"
lst_num=[int(x) for x in ciphtext.split()]
idx=[i for i, x in enumerate(lst_num) if x==30]
for i in idx: ???
要对列表进行切片,第一个参数应该是“i+1”,但是如何从 idx 获取后续索引作为停止索引呢?有没有办法在迭代中给每个子列表一个唯一的名称?
解决方案
一小步:
>>> [lst_num[start+1:end] for start, end in zip(idx, idx[1:])]
[[24, 17], [22, 1, 67, 2, 4, 3], [24, 95, 34, 29, 56]]
只是zip
成对的切片边界的索引。
推荐阅读
- typescript - 打字稿类型保护布尔结果从不
- mongodb - MongoDB聚合过滤子文档字段匹配正则表达式
- flutter - 在颤振的应用程序中,我正在使用来自 rxdart 的 doOnData 如何删除它?
- css - 你能让n个元素填充一个自动行网格吗
- javascript - 从ajax请求动态连接Vue中的数组不起作用
- javascript - PHP - 如何检查请求是否针对 JS 工作者
- r - 如何结合情节(mod)中的所有4个情节?(右)
- visual-studio - “Visual Studio 版本选择器”如何找到适当的 Visual Studio 可执行文件的路径?
- flutter - 不支持的操作:Platform._operatingSystem
- android - Android:如何禁用应用程序主题应用于特定视图?