打印大于其左邻居的所有整数

Lev*_*ley 1 python math integer python-3.x python-3.6

(使用python 3)这是我给出的任务:

给定一个数字列表,查找并打印所有大于其左边邻居的元素.

示例输入

1 5 2 4 3
Run Code Online (Sandbox Code Playgroud)

示例输出

5 4
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

# creates a list out of the input given as '# # # # # #...'
a = [int(s) for s in input().split()]

for i in a[1:]:               #skips the first since it has no "left neighbor"
   if i > a[a.index(i) - 1]:  #checks if 'i' is greater than element before 'i'
      print(i, end=' ')
Run Code Online (Sandbox Code Playgroud)

我的问题是它适用于我所做的所有测试,除非我给它一个列表a[0] == a[-1]然后它忽略列表中等于该整数的所有元素.

例如:

3 5 2 3 1 2 3 1 3
--> 5    
Run Code Online (Sandbox Code Playgroud)

我一直很难找到这个bug!如果这个问题没有得到很好的解决,请原谅.我是第一次在stackoverflow上问一个问题.

Mus*_*waz 5

试试这个:

for i in range(1, len(a)):
    if a[i] > a[i-1]:
        print(a[i], end=' ')
Run Code Online (Sandbox Code Playgroud)

结果:

3 5 2 3 1 2 3 1 3
--> 5 3 2 3 3
Run Code Online (Sandbox Code Playgroud)

  • for循环从i = 1开始,所以应该没问题. (2认同)