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

如何用Python将三个列表合并为嵌套字典?技术实现求助

解决Python合并三个列表为嵌套字典的问题

首先明确:字典的键是唯一的,你之前想要的{"price": 1, "price": 2, "price": 3}结构根本行不通——重复的键会被后面的值覆盖,这个思路从一开始就错了。

直接看正确实现方式,核心是用zip()把三个列表的对应元素打包,逐个生成嵌套字典:

完整代码实现

# 获取用户输入并分割为列表
item_input = input("Enter products separated by space: ")
price_input = input("Enter prices separated by space: ")
stock_input = input("Enter stocks separated by space: ")

items = item_input.split()
# 将价格转为float,库存转为int(可根据实际需求调整类型)
prices = [float(p) for p in price_input.split()]
stocks = [int(s) for s in stock_input.split()]

# 生成目标嵌套字典
products = {}
for item, price, stock in zip(items, prices, stocks):
    products[item] = {"price": price, "stock": stock}

# 打印结果
print(products)

代码说明

  1. 类型转换:用户输入分割后得到的是字符串列表,必须把价格转成float、库存转成int,否则字典里会存字符串,不符合你要的数值格式。
  2. zip打包:zip(items, prices, stocks)会把三个列表中索引相同的元素打包成元组,比如第一个元组是(items[0], prices[0], stocks[0]),正好对应一个商品的名称、价格、库存。
  3. 生成嵌套字典:遍历每个打包后的元组,把商品名作为外层字典的键,内层是包含price和stock的子字典。

示例运行

如果输入:

apple banana cake
3.5 6.82 23
134 52 5

输出会是:

{'apple': {'price': 3.5, 'stock': 134}, 'banana': {'price': 6.82, 'stock': 52}, 'cake': {'price': 23.0, 'stock': 5}}

补充:用字典推导式简化代码

如果想更简洁,可以用字典推导式一行生成:

products = {item: {"price": price, "stock": stock} for item, price, stock in zip(items, prices, stocks)}

内容的提问来源于stack exchange,提问作者Goh Kian Seen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:45:37