寻找前后的最大数字' i'在列表中

时间:2017-11-17 16:33:08

标签: python python-3.x

如果标题令人困惑,我很抱歉。这是一个更好的解释: 所以基本上我需要做的是遍历列表中的每个数字并打印最大数字西(列表[0:i])和最大数字东。如果最大数字小于i,我们打印i。因此对于列表[1,3,2,4,3],输出应为: 1 4 3 4 3 4 4 4 4 3

我认为我的代码是正确的,但它不适用于列表中的最后一个数字,是否有人能够提供帮助?

'一个'是我的代码中的列表

a = [1, 3, 2, 4, 3] 
for i in a:
    west = a[0:i]
    east = a[i:int(len(a))]
    if max(west) > i:
        print(max(west))
    else:
        print(i)
    if max(east) > i:
        print(max(east))
    else:
        print(i)

3 个答案:

答案 0 :(得分:3)

尝试:

for i in range(len(a)): 
    print(max(a[:i+1]))
    print(max(a[i:]))

您没有迭代原始代码中的索引;因此分区没有意义。

答案 1 :(得分:0)

代码中唯一的错误是for i in a循环,它循环th i = 1,3,2,4,3而不是i=0,1,2,3,4

以下代码可以使用

a=[1,3,2,4,3]
for i in range(len(a)) :
    print max(i,max(a[:i+1]))
    print max(i,max(a[i:]))

答案 2 :(得分:0)

这可能有用......没有经过全面测试,但看起来是正确的

a = [1, 3, 2, 4, 3]
for i in a[:-1]:
    west = a[0:i]
    east = a[i:int(len(a))]
    if max(west) > i:
        print(max(west))
    else:
        print(i)
    if max(east) > i:
        print(max(east))
    else:
        print(i)
num = a[-1]
west = a[0:-1]
if max(west) > num:
    print(max(west))
else:
    print(str(a[-1]))
print(str(a[-1]))

输出:1 4 3 4 4 4 4 3