我有一个列表(实际上是一个 pandas.DataFrame,但让我们简单一点),让我们说:
a = list(range(10))
我必须迭代它并在每个循环中提取从开始到“移动结束”的所有元素。我希望在第一次迭代时获得整个列表,在第二次迭代时删除最后一个元素,在第三次迭代时删除最后两个元素......依此类推。
编码似乎很容易:
for i in range(5) :
print(i,a[:-i])
事实上,这段代码从“1”及更高版本开始工作得很好。但对于 i=0 我得到一个空列表,而我想获取完整列表。
我知道“-0”等于“0”,这就是我有这种行为的原因......但是我能做些什么吗?
谢谢!
最佳答案
您可以显式计算结束索引:
for i in range(5):
print(i, a[: len(a) - i])
或者当为零时用 None
替换结束索引:
for i in range(5):
print(i, a[: -i or None])
关于python - 从末尾开始迭代切片索引(python): how to avoid "-0" to be equal to "0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66698899/