gpt4 book ai didi

python - Python 切片中的算术,结束行为

转载 作者:行者123 更新时间:2023-11-28 20:43:17 25 4
gpt4 key购买 nike

我想遍历某个切片排列的列表:

l = range(10)
for i in (0,1,2):
print l[i:i + 3]

# [0, 1, 2]
# [1, 2, 3]
# [2, 3, 4]

然而,当我尝试从列表末尾开始执行时,i = 0 失败了

l = range(10)
for i in (0,1,2):
print l[-(i + 3):-i]

# [] // expected: [7, 8, 9]
# [6, 7, 8]
# [5, 6, 7]

我明白为什么这不起作用。

l[-1:]
l[-1:None]

两者都有效但是

l[-1:0]

由于 0 引用了第一个元素,而不是“最后一个元素之后的元素”,因此检索了一个空集。

但是我想知道是否有一种解决方案可以实现直接的“从 x 迭代到结束”,其中 end 不必特殊处理,以防万一我真的到达终点。

上面的例子只是例子,我试图在 NumPy 中赋值,所以 l[...].reverse() 等将不起作用。

最佳答案

您可以使用 len(l) - i 代替 -i:

l = range(10)
for i in (0,1,2):
print l[-(i + 3):len(l) - i]

输出:

[7, 8, 9]
[6, 7, 8]
[5, 6, 7]

关于python - Python 切片中的算术,结束行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29010234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com