偶然的你
如果你有很长的子范围列表要提取,或者你想要一个漂亮的语法,你可以定义一个函数来从数组中获取多个子范围:from itertools import chaindef extract(array,ranges): return list(chain( * (array[s:e] for s,e in ranges.items()) ))array = list(range(100,200))subArray = extract(array,{ 0:1, 12:15, 35:39 })print(subArray) # [100, 112, 113, 114, 135, 136, 137, 138]
桃花长相依
我不确定你的确切问题是什么,因为你没有提到,但如果你试图将相似的项目组捕获在一起但还需要一个列表,为什么不使用一个以字符串作为键和列表作为值的字典。还有其他方法可以使用 functools 或 iter utils例子items = [1,2,3,1,2,4,5,6,7,8,2,1,3,4,1,2,1,1]dict_of_keys = {}for i in items: if i not in dict_of_keys: dict_of_keys[i] = [] dict_of_keys[i].append(i)print(dict_of_keys){1: [1, 1, 1, 1, 1, 1], 2: [2, 2, 2, 2], 3: [3, 3], 4: [4, 4], 5: [5], 6: [6], 7: [7], 8: [8]}