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。实际名称不同。在编辑和简化问题时,我不小心把它命名为列表。