【发布时间】:2016-06-28 13:02:51
【问题描述】:
根据排序列表获取下一个值的最简单方法是什么?
具有唯一编号的排序列表:
如果列表中没有找到数字n,则返回n+1, 如果找到,则在最后一个不破坏递增序列的数字中找到,返回num+1。
- num=1,对于列表 [1,2,3,6] 将返回 4。李>
- num=10,对于列表 [1,2,3,6] 将返回 11。李>
- num=5,对于列表 [1,2,3,6] 将返回 7。李>
我很难接受递归调用,例如:
def nextn(num,listnums):
if(num not in listnums): return num+1
return nextn(num+1,listnums)
listnums=[1,2,3,6]
n=1
nn = nextn(n,listnums)
print("n=%d nn=%d" %(n,nn))
【问题讨论】:
-
您的预期输出背后的逻辑是什么?
-
如果列表中没有找到数字n,则返回n+1,如果是,则返回下一个n+1,以防它也不在列表中。
-
所以只需将此解释添加到您的问题中。
-
我添加了它,我的例子已经足够了。谢谢
-
你的 if 语句检查错误的条件,见下文。实际上,您的文字也说明了这种错误情况,而不是您在示例中的意思。