You need to enable JavaScript to run this app. 如何持续接收用户双输入并依次存储为嵌套列表(附商品名与价格示例)?
优惠活动
大模型
产品
解决方案
定价
更多

如何持续接收用户双输入并依次存储为嵌套列表(附商品名与价格示例)?

多轮双字段交互输入嵌套存储实现

实现逻辑

  • 初始化空总列表作为最终存储容器,所有采集的条目都以独立子结构的形式追加到这个列表中
  • 循环触发用户交互流程:每一轮依次要求输入两个关联值(对应商品信息采集场景下的商品名称、商品价格)
  • 收集完单组两个值后,立刻将这组值封装为子项(可根据需求选择元组/列表形式,匹配嵌套结构要求),追加到总列表
  • 内置用户主动终止采集的触发逻辑,避免无限制弹窗输入的反交互问题
  • 对数值类输入做合法性校验与类型转换,保证存储的价格值不是原始的字符串类型

可直接运行的示例代码

# 初始化空的总存储列表
product_collection = []

while True:
    # 输入商品名称,设置q为终止采集的标识
    name_input = input("请输入商品名称(输入q即可结束采集):")
    if name_input.strip().lower() == "q":
        break

    # 输入价格,增加合法性校验防止非数字输入导致异常
    while True:
        price_input = input("请输入对应商品的价格:")
        try:
            final_price = float(price_input)
            break
        except ValueError:
            print("价格输入不合法,请输入数字后重试")
    
    # 将当前一组信息封装为子项,追加到总列表
    product_collection.append((name_input.strip(), final_price))

# 采集完成后输出最终存储结构
print("采集结束,最终存储的商品列表为:", product_collection)

运行效果说明

按照示例场景操作时:

  • 依次输入3组商品信息:香蕉(10)、苹果(20)、橙子(30)
  • 结束采集后程序输出的最终存储结构与预期完全一致:

[('banana', 10.0), ('apple', 20.0), ('orange', 30.0)]

如果需要严格的纯嵌套列表(列表套列表)结构,只需将代码中追加子项的语句调整为product_collection.append([name_input.strip(), final_price]),最终生成的就是标准列表套列表结构:[['banana', 10.0], ['apple', 20.0], ['orange', 30.0]]。内置的输入容错逻辑会在用户输入非数字价格时弹出提示要求重输,不会导致程序异常退出。

内容的提问来源于stack exchange,提问作者Adnan Kayani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 17:36:03