给出一个清单:
['x','y',1,2,'b','l',3,'z']
我想通过给定的非法字符拆分列表,
例如,给定的字符是'y'和'b',我想得到索引:[0,2:3,5:]
我该怎么办?
答案 0 :(得分:1)
您可以根据元素是否在非法字符中的条件对列表进行分组,然后为每个组提取相应的索引:
from itertools import groupby
charList = ['y', 'b']
[[i[0] for i in g] for k, g in groupby(enumerate(lst), lambda x: x[1] in charList) if not k]
# [[0], [2, 3], [5, 6, 7]]
另一种从每个组中提取索引的方法:
[list(zip(*g))[0] for k, g in groupby(enumerate(lst), lambda x: x[1] in charList) if not k]
# [(0,), (2, 3), (5, 6, 7)]