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

如何在Python中将多列表数据整合为字典并实现输入存储打印?

解决方案:将列表数据合并为字典

你的现有代码通过zip()得到的是元组组成的列表,而非字典。根据需求,这里提供两种常见的字典合并方式:

1. 每个家庭成员对应一个字典(组成字典列表)

这种方式适合需要保留所有成员完整结构的场景,每个成员的信息都包含明确的键名。

方式A:循环时直接构建字典列表

size = input("Enter size of family: ")
family_list = []

for _ in range(int(size)):
    name = input("Enter name: ")
    birthyear = int(input("Enter birthyear: "))
    address = input("Enter address: ")
    
    # 直接创建包含成员信息的字典并加入列表
    family_list.append({
        "name": name,
        "birthyear": birthyear,
        "address": address
    })

print(family_list)

方式B:基于现有列表转换为字典列表

如果想保留原有的三个独立列表,可通过列表推导式将zip()生成的元组转换为字典:

size = input("Enter size of family: ")
names = []
year = []
address = []

for _ in range(int(size)):
    names.append(input("Enter name: "))
    year.append(int(input("Enter birthyear: ")))
    address.append(input("Enter address: "))

# 将元组列表转换为字典列表
family_list = [{"name": n, "birthyear": y, "address": a} for n, y, a in zip(names, year, address)]
print(family_list)

输出示例:

[{'name': 'Alice', 'birthyear': 1985, 'address': '123 Main St'}, {'name': 'Bob', 'birthyear': 1988, 'address': '456 Oak Ave'}]

2. 以姓名为键构建字典

如果家庭成员姓名唯一,可将姓名作为字典的键,对应的值是包含出生年和地址的子字典:

size = input("Enter size of family: ")
family_dict = {}

for _ in range(int(size)):
    name = input("Enter name: ")
    birthyear = int(input("Enter birthyear: "))
    address = input("Enter address: ")
    
    family_dict[name] = {"birthyear": birthyear, "address": address}

print(family_dict)

输出示例:

{'Alice': {'birthyear': 1985, 'address': '123 Main St'}, 'Bob': {'birthyear': 1988, 'address': '456 Oak Ave'}}

内容的提问来源于stack exchange,提问作者Al Bundy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:13:10