Python 查找列表中上一个和下一个元素的最佳方法

Python 查找列表中上一个和下一个元素的最佳方法,python,list,element,items,Python,List,Element,Items,基于给定元素索引查找上一个和下一个元素的有效方法是什么 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:] ) 正确输出 接下来的元素是[(200125),(240130),(240100),(272100)] 虽然此行打印了错误的元素:

基于给定元素索引查找上一个和下一个元素的有效方法是什么

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:] )
正确输出

接下来的元素是[(200125),(240130),(240100),(272100)]

虽然此行打印了错误的元素:

print ('Prev elements are', list[idx - 1:])
输出错误

[(100100),(200100),(200125),(240130),(240100),(272100)]


为什么会这样?我也尝试了这个
list[(idx-1)%len(list):]

如果您有这样的数组:

arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
和定义的索引:

index = 4
前面的元素:

print(arr[:index])
> [0, 1, 2, 3]
print(arr[index+1:])
> [5, 6, 7, 8, 9]
之后的元素:

print(arr[:index])
> [0, 1, 2, 3]
print(arr[index+1:])
> [5, 6, 7, 8, 9]

PS:如果您的索引在
范围(0,len(arr)-2)
中,那么您将获得后面的元素,否则您将获得前面元素的正确表达式

print('Prev elements are',list[:idx])


另外,请注意,不要将列表命名为
list
,因为
list
是Python中的保留名称,用作提供的
list
类型的语言名称

您是否尝试过打印('Prev elements are',list[:idx])?注意标题
不拖尾如果你想要下一个元素,为什么要减去1?使用
list[idx+1:::
另外,不要调用对象
list
,因为这会破坏内置的类型可能会重复查看链接答案。这将是一个很好的开端,有助于理解指出命名错误的Slicinghanks。实际名称不同。在编辑和简化问题时,我不小心把它命名为列表。