【发布时间】:2018-01-03 09:24:24
【问题描述】:
我有一个清单:
day_list = [1,2,3,4,5,6]
我想编写一个函数,该函数将从此列表中获取任意数字 (no) 并返回下一个和上一个元素。
因此,例如,如果我通过 2,我应该得到 [1,3](1 是前一个元素,3 是下一个元素)。
但有一个问题:
如果 no = 1 前一个元素应该是 6,同样no = 6 下一个元素应该是 1
我想要类似的东西:
def getPrevNext(no):
....
....
return [prev,next]
result = getPrevNext(2) # result should be [1,3]
result2 = getPrevNext(5) # result2 should be [4,5]
result3 = getPrevNext(1) # result3 should be [6,2]
result4 = getPrevNext(6) # result3 should be [5,1]
我试过了:
def dummy(no):
if no == 1:
prev_no = 6
next_no = 2
elif no == 6:
prev_no = 5
next_no = 1
else:
prev_no = no - 1
next_no = no + 1
return [prev_no,next_no]
但这似乎是一种非常幼稚和基本的方法。有没有更好的方法来做到这一点?
仅供参考不需要列出天数,这只是为了了解总数。
【问题讨论】:
-
为什么 6 是 6 的下一个?
-
您从未在
dummy()中访问过day_list。 -
@timgeb 这是一个错字,因为在代码中 6 之后的下一项是 1。
-
@timgeb 6 的下一个是 1
-
你应该创建一个圆表数据结构。