python - 从末尾开始迭代切片索引(python): how to avoid "-0" to be equal to "0"?

标签 python indexing slice

我有一个列表(实际上是一个 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/

相关文章:

python - 如何在 Pycharm Mac 中使用来自 Python 包交换的 Python 包?

javascript - Python 中的 Pubnub 存在功能 (GAE)

python - Numpy 数组索引与其他数组会产生广播错误

arrays - 作业中的 Perl 'context'

python - 如何在也包含整数的列表列表中找到最小的子列表

python - 对象.filter ("ı wanna add two contains field")

hadoop - 使用协处理器 HBase 创建二级索引

sql-server - SQL Server 可以通过分隔符对文本字符串进行索引吗?

python - 在连续值组中切片 Pandas 数据框

Matlab如何轻松循环圆形数组