如何用两个列表生成键为固定默认值、值分别取自两个列表的字典
解答
Python 字典的键具备唯一性,相同键名重复赋值时,旧值会被新值直接覆盖。你给出的预期字典结构不符合 Python 语法规范,按你写的格式实际创建后只会得到 {'Letter': 'C', 'Number': 3} 这两个键值对,前面的内容会全部丢失。
如果你是想要把字母和对应数字配对,生成由单组映射组成的列表(这是同类需求最常见的合法实现方案),目标结构如下:
[ {'Letter': 'A', 'Number': 1}, {'Letter': 'B', 'Number': 2}, {'Letter': 'C', 'Number': 3} ]
可以用 zip 函数配合列表推导式实现,代码如下:
letters = ['a', 'b', 'c'] nums = [1, 2, 3] result = [{'Letter': char.upper(), 'Number': num} for char, num in zip(letters, nums)]
如果你确实需要保留所有重复键的键值对记录,可以改用二元组列表存储:
result = [] for char, num in zip(letters, nums): result.append(('Letter', char.upper())) result.append(('Number', num))
需要读取时直接遍历该列表即可,不会出现内容丢失的问题。
内容的提问来源于stack exchange,提问作者Aart Hakkens
相关产品推荐
相关产品推荐

