You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何从用户输入构建数组并找出其中的最大值?

解决方法:接收用户输入并存入数组后找出最大值

首先明确常见问题根源:Python3 里 map() 返回的是迭代器对象,而非直接可重复操作的列表。如果直接将其赋值给数组变量,迭代器遍历一次后就会耗尽,后续再操作就拿不到元素;另外若未把输入字符串转为数值类型,比较的会是字符串的 ASCII 值,而非数字大小。

正确实现步骤

  1. 接收输入并转为数值列表
    先用 input().split() 获取分割后的字符串列表,再通过 map() 转成数值类型,最后用 list() 把迭代器转为可重复访问的列表:

    # 接收用户输入,转换为整数列表(如需浮点数则把int换成float)
    num_list = list(map(int, input("请输入多个数字,用空格分隔:").split()))
    
  2. 手动遍历找最大值

    if not num_list:
        print("未输入任何数字")
    else:
        max_num = num_list[0]
        # 逐个比较元素更新最大值
        for num in num_list:
            if num > max_num:
                max_num = num
        print("输入的数组:", num_list)
        print("最大值:", max_num)
    

你的代码失效原因

如果你的代码类似这样:

arr = map(int, input().split())
# 第一次遍历耗尽迭代器
for num in arr:
    print(num)
# 第二次遍历无元素可用
max_num = max(arr)

迭代器仅能被遍历一次,遍历后内部就没有元素了,后续打印数组、找最大值自然失败。将 map() 结果转为 list 就能解决这个问题,列表支持多次遍历与操作。

内容的提问来源于stack exchange,提问作者Alfred Nirmal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:32:05