根据包含索引的另一个列表将列表(这里为: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获得后续索引作为停止索引?有没有办法在迭代中为每个子列表赋予唯一的名称?
答案 0 :(得分:0)
还有一步:
>>> [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
索引即可成对的切片边界。