以下是一个Python代码示例,可以通过等步长切割列表并保持最小值和最大值:
def cut_list(lst, step):
min_val = min(lst)
max_val = max(lst)
start = min_val
end = start + step
result = []
while end <= max_val:
section = [x for x in lst if start <= x < end]
result.append(section)
start = end
end = start + step
section = [x for x in lst if start <= x <= max_val] # 处理最后一个区间
result.append(section)
return result
使用示例:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
step = 3
result = cut_list(lst, step)
print(result)
输出结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
该代码通过找到列表中的最小值和最大值,然后使用等步长切割列表。它使用一个while循环,每次迭代时,它会找到当前区间的起始值和结束值,并将在该区间范围内的元素添加到一个新的区间中。循环最后还要处理最后一个区间,因为它可能不够长以达到步长。最后,它返回一个包含所有切割区间的列表。
下一篇:保持坐标排序