【发布时间】:2019-10-23 12:07:56
【问题描述】:
根据给定的元素索引查找前一个和下一个元素的有效方法是什么?
list = [(100, 112), (100, 100), (200, 100), (200, 125), (240, 130), (240, 100), (272, 100)]
idx = 2 # for example
print('Next elements are', list[idx + 1:] )
正确的输出
下一个元素是 [(200, 125), (240, 130), (240, 100), (272, 100)]
虽然这行打印了错误的元素:
print ('Prev elements are', list[idx - 1:])
输出错误
[(100, 100), (200, 100), (200, 125), (240, 130), (240, 100), (272, 100)]
为什么会这样?我也试过list[(idx-1)%len(list):]
【问题讨论】:
-
你试过
print ('Prev elements are', list[:idx])吗?注意标题:没有尾随 -
如果你想要下一个元素,为什么要减去 1?使用
list[idx+1:] -
另外,不要调用你的对象
list,因为这会践踏内置类型 -
看看链接的答案。这将是了解切片的良好开端