如何使用python中的循环在列表中打印最大数字

时间:2015-08-09 05:21:44

标签: python

我制作了一个程序,我可能会犯一个概念错误,任何人都可以帮我解决这个问题吗?

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

4 个答案:

答案 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)