假设我有一个 list ,
l = [1, 2, 3, 4, 5, 6, 7, 8]
我想获取任意元素的索引及其相邻元素的值。例如,
i = l.index(n)
j = l[i-1]
k = l[i+1]
但是,对于 i == len(l) - 1
的边缘情况,这会失败。所以我想我会把它包裹起来,
if i == len(l) - 1:
k = l[0]
else:
k = l[i+1]
有没有pythonic方法可以做到这一点?
最佳答案
你可以使用模运算符!
i = len(l) - 1
jIndex = (i - 1) % len(l)
kIndex = (i + 1) % len(l)
j = l[jIndex]
k = l[kIndex]
或者,为了不那么冗长:
k = l[(i + 1) % len(l)]
关于Pythonic 循环列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951020/