2024-03-28 20:30:01 发布
网友
我有一个列表,我想分成不同的步长。例如,如果我有一个从1到100的列表,在每次迭代结束时,我希望输出为:
[1, 2, 3] [4, 5, 6, 7, 8] [9, 10, 11, 12, ..., 15] [16, 17, ..., 25]
第一个列表的长度是3,然后是5,然后是7,然后是9。在
我有的是这个
我知道这不管用,但我不知道需要改变什么。在
由于步长不同,因此需要一个while循环:
lst = list(range(1,101)) step = 3 idx = 0 while idx<len(lst): print(lst[idx:idx+step]) idx += step step += 2
注意,开始切片的索引由闭合形式给出:
n**2 - 1
因此:
丹尼尔的回答是最简洁的,但我想指出的是,有时候,你会遇到更复杂的情况,想要从不同的iterables得到相同的切片。然后,您还可以继续存储在列表中编写[start:stop:step]时python生成的实际slice(start,stop[,step])对象并使用它。E、 g.:
[start:stop:step]
slice(start,stop[,step])
r1 = range(1,101) r2 = list(reversed(r1)) slices = [slice(0,5,3)] for i in range(20): slices.append( slice( slices[-1].stop, slices[-1].stop + slices[-1].step + 1, slices[-1].step + 1) ) print [ (r1[s],r2[s]) for s in slices ]
由于步长不同,因此需要一个while循环:
注意,开始切片的索引由闭合形式给出:
因此:
^{pr2}$丹尼尔的回答是最简洁的,但我想指出的是,有时候,你会遇到更复杂的情况,想要从不同的iterables得到相同的切片。然后,您还可以继续存储在列表中编写
[start:stop:step]
时python生成的实际slice(start,stop[,step])
对象并使用它。E、 g.:相关问题 更多 >
编程相关推荐