3 回答
TA贡献1841条经验 获得超3个赞
如果你有很长的子范围列表要提取,或者你想要一个漂亮的语法,你可以定义一个函数来从数组中获取多个子范围:
from itertools import chain
def 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]
TA贡献1793条经验 获得超6个赞
我不明白你在问什么。
如果您需要record[0]
,record[12:15]
和record[35:39]
,那么,它们就在那里。去拿他们。是什么阻止了你?
您是否需要将这些元素组合到它们自己的较小列表中?
TA贡献1860条经验 获得超8个赞
我不确定你的确切问题是什么,因为你没有提到,但如果你试图将相似的项目组捕获在一起但还需要一个列表,为什么不使用一个以字符串作为键和列表作为值的字典。还有其他方法可以使用 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]}
添加回答
举报