【发布时间】:2019-04-10 11:16:19
【问题描述】:
我有一个列表 l=[2,3,4,5,6,99,7,8,9,10,11,12,100,13,14,15,16,17,18,101],我想将 l 拆分为子列表 [2,3,4,5,6], [7,8,9,10,11,12],[13,14,15,16,17,18],这意味着我使用属于 separators = [99,100,101] 的“分隔符”数字 99,100,101 作为标志来指示我应该去哪里到下一个列表。
特别是,这些子列表可能具有不同数量的元素,但大小仅相差 1(5 或 6)。注意:分隔符可能超过 3 个。
在 Python 3 中有没有一种有效的方法来做到这一点?我想先提取分隔元素的索引,然后相应地对列表进行切片,但这似乎太复杂且计算量太大了..
一些见解会很棒!
添加(来自@Netwave 的建议):我的尝试(显然行不通):
g = []
for i in l:
if i in separators:
g += [l[:l.index(i)]]
输出:
>>> g
[[2, 3, 4, 5, 6], [2, 3, 4, 5, 6, 99, 7, 8, 9, 10, 11, 12], [2, 3, 4, 5, 6, 99, 7, 8, 9, 10, 11, 12, 100, 13, 14, 15, 16, 17, 18]]
【问题讨论】:
-
你已经尝试了什么?使用示例代码总是更容易回答。
-
总是有这 3 个分隔符吗??
-
@Netwave 感谢您的建议,到目前为止,我已经添加了我的尝试,由于切片原因很明显,这不起作用:(
-
@EoinS 不,可能还有更多。我会相应地更新我的问题。谢谢!
标签: python python-3.x list slice