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

时间:2019-10-23 12:07:56

标签: 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:] )

正确的输出

  

下一个元素是[(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):]

2 个答案:

答案 0 :(得分:4)

如果您有这样的数组:

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]

PS:如果索引在range(0, len(arr)-2)中,那么您将获得元素之后,否则将获得[]

答案 1 :(得分:1)

先前元素的正确表达应为

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

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

相关问题