Python动态数组访问[:0]

9
我尝试在循环中动态访问数组,例如array[n-i:-i],只要i != 0,它就可以正常工作。但是如果i==0,我得到的是array[n:0],我期望输出从n到结尾的array,但它返回了空值(我猜是None)。如何实现预期的行为?

2
为什么将切片索引设为0会输出至结尾?因为0是一个有效的索引。如果你想要切片至结尾,请使用None - Martijn Pieters
1个回答

12
使用 None 来切片到结尾; Python 将使用 len(array) 作为终点。当 -i0 时,使用 or 回退到 None
array[n-i:-i or None]

在Python的布尔运算中,数字0被认为是的。or运算符短路;如果第一个操作数是真值,它将返回第一个操作数,否则它将评估第二个操作数并返回那个值。


@SuperBiasedMan:已更新答案,并附上了文档链接。 - Martijn Pieters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接