我制作了一个程序,我可能会犯一个概念错误,任何人都可以帮我解决这个问题吗?
l=[1,7,6,2,3]
x=0
y=0
for i in l:
if(i>y):
x=i
else:
x=y
y=i
print (x)
它给出的输出是3,即列表中的最后一个数字
任何人都可以指出我的错误PLSS
答案 0 :(得分:2)
此代码适用于正面和负面条目。
l=[1,7,6,2,3]
MAX = float('-inf')
for i in l:
if(MAX < i):
MAX = i
print(MAX)
输出:7
您也可以在没有for循环的情况下解决此问题。
l=[1,7,6,2,3]
print(max(l))
输出
7
答案 1 :(得分:2)
你的错误是
y = i
第13行,你应该做
y = x
代替。 但是,如果您不需要使用循环有一些奇怪的原因,最好的解决方案是使用max函数,正如其他人已经指出的那样。 如果您更喜欢使用您的功能,我会进一步优化它,例如:
l = (-1000, 1, 7, 6, 2, 3, 1000)
x = float('-inf')
for i in l:
if i > x:
x = i
print x
答案 2 :(得分:0)
以下循环将起作用,
l=[1,7,6,2,3]
x=0
for i in l:
if(i>x):
x=i
print (x)
您还可以使用max()
方法查找列表中的最大元素
`max(l)` will return `7`.
答案 3 :(得分:0)
l=[1,7,6,2,3]
max=0 # set the max of the list to 0 to start
for i in l: # run through the entire list
if(max<i): # check to see if the present element > max
max=i # if so, set max to that value
print (max)