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

Python无法将多次用户输入存入列表,请求代码问题排查

问题分析与修复

错误原因

  1. 列表被重复初始化:每次while循环都会执行lst = [input('Enter name here: ')],这会创建一个仅包含当前输入的新列表,直接覆盖之前存储的所有输入,最终列表里只剩最后一次输入的内容,所以统计次数必然是1。
  2. 重复输出相同元素:即使保留了所有输入,原代码遍历列表时,相同名字会被多次输出(比如输入两次"bob",会打印两行"2 BOB")。

修复后的代码

lst = []
while True:
    try:
        name = input('Enter name here: ')
        lst.append(name)
    except KeyboardInterrupt:
        # 统计每个名字的出现次数
        name_counts = {}
        for name in lst:
            name_counts[name] = name_counts.get(name, 0) + 1
        
        # 输出结果
        for name, count in name_counts.items():
            print(count, name.upper())
        break

修复说明

  • 将列表初始化移到循环外部,循环内用append()方法添加输入,确保所有输入都被保留在列表中。
  • 使用字典name_counts统计每个名字的出现次数,避免重复输出相同名称,同时提升统计效率。
  • 添加break语句,捕获KeyboardInterrupt后退出循环,防止程序继续等待输入。

内容的提问来源于stack exchange,提问作者Manansh Arora

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:27:06