如果标题令人困惑,我很抱歉。这是一个更好的解释: 所以基本上我需要做的是遍历列表中的每个数字并打印最大数字西(列表[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)
答案 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