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

