【发布时间】:2018-02-03 10:54:44
【问题描述】:
我正在尝试编写一个程序,如果list 中的所有数字都是连续的,它将打印“YES”,如果数字不连续,则应该返回“NO”。连续我的意思是列表中的每个数字都应该大于前一个元素的一个。
例如:
它应该为输入打印“YES”:
[3, 4, 5]、[7, 8, 9]、[1, 2, 3]、[0, 1, 2, 3, 4, 5].. 等它应该为输入打印“NO”:
[9, 1, 0]、[3, 2, 4]、[5, 5]、[9, 8, 2, 3, 7]..等
我为此使用了enumerate。
这是我的代码:
inp=[1,2,3,4,5]
flag=0
for index,e in enumerate(inp):
if index!=len(inp)-1:
if inp[index+1]==inp[index]+1:
flag=1
if flag==1:
print ("YES")
else:
print ("NO")
代码运行良好,但我觉得它是多余的。
有没有更好的方法来使用枚举或不使用枚举?
【问题讨论】:
-
你的例子说它应该为
[345,789,123,567,012345]说“是”,但我怀疑你的代码是否这样做 -
@MoinuddinQuadri 我认为 OP 对
[3,4,5]、[7,8,9]等表示“是”。 -
是的,我的意思是 [3,4,5], [7,8,9] 等。我会编辑它
标签: python python-3.x for-loop enumerate