Python中输入数字中列表中的最高数字

时间:2018-10-15 18:29:59

标签: python python-3.x

def my_max():    

#using input to collect number to list 
list_a = input("print your list with numbers: ").split(",")  

# Searching for the highest number
      max = 0
      for i in list_a:
           if i > str(max):
      max = i
print(max)

my_max()

当我输入数字时,有时会打印出最高的数字,但并非总是如此。

例如,如果我写:“ 54,64,446” 数字“ 64正在打印。有人知道为什么吗?

2 个答案:

答案 0 :(得分:2)

在执行逻辑之前,您需要将其映射到int的列表中:

def my_max():    

    # using input to collect number to list 
    list_a = input("print your list with numbers: ").split(",")  

    # Searching for the highest number
    return max(map(int, list_a))

print(my_max())

样品运行

print your list with numbers: 54,64,446
446

','上拆分将为您提供字符串列表。您观察到的是预期的行为,因为与整数列表相比,您找到的字符串列表最多。

如果不使用max(),我将执行以下操作:

def my_max():    

    # using input to collect number to list 
    list_a = list(map(int, input("print your list with numbers: ").split(",")))

    # Searching for the highest number
    max = list_a[0]
    for x in list_a[1:]:
        if x > max:
            max = x
    return max

print(my_max())

答案 1 :(得分:0)

您的list_a包含字符串,而不是数字。比较时,您正在比较这些字符串的值。结果是按字母顺序而不是按数字顺序获得最高值。

以字符串而不是数字来表示,> 64> 54> 446