python中的slice是不可迭代的。这段代码:
s = slice(1, 10, 2)
iter(s)导致此错误:
TypeError: 'slice' object is not iterable这是我想出的代码,通过创建一个列表可迭代来显示切片:
list(range(s.start, s.stop, s.step))它使用切片对象的start、stop和step属性。我将它们插入到一个范围(一个不可变的序列类型)中,并创建一个列表:
[1, 3, 5, 7, 9]是不是少了点什么?我还能更好地迭代切片吗?
发布于 2019-03-01 17:50:28
发布于 2020-08-25 20:46:20
将切片转换为范围,然后可以迭代该范围。
range(10**10)[slice]发布于 2021-03-17 03:17:26
这个问题比答案更一般。Slice可以将浮点数作为一个步骤,而range只能接受整数。因此,更一般地说:
test=slice(0,1,0.01)
testlist=[x*test.step for x in range(0,int((test.stop-test.start)/test.step+1))]您可能会得到舍入误差,其中讨论了备选方案的here
https://stackoverflow.com/questions/54941439
复制相似问题