根据给定的元素索引查找上一个和下一个元素的有效方法是什么?
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):]
答案 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
类型的名称!>