gpt4 book ai didi

python - 在 Python 循环中定义多个字典

转载 作者:行者123 更新时间:2023-12-01 05:45:11 25 4
gpt4 key购买 nike

我想要做的是定义三个非常相似的词典,只有细微的差别。如果您认识到这一点,这是 Codeacademy 的 Python 类(class)中的问题之一,我希望做得更优雅一些。无论如何,这就是我所拥有的:

import string
for name in ["lloyd", "alice", "tyler"]:
name = {"name": string.capitalize(name), "homework": [], "quizzes": [], "tests": []}

这不起作用。我想要的是三个字典,其中的名称为“lloyd”、“alice”和“tyler”,并带有他们名字的键(但大写)、“homework”、“quizzes”和“tests”

澄清一下,我想要的输出相当于:

lloyd = {"name": "Lloyd", "homework": [], "quizzes": [], "tests": []}
alice = {"name": "Alice", "homework": [], "quizzes": [], "tests": []}
tyler = {"name": "Tyler", "homework": [], "quizzes": [], "tests": []}

最佳答案

我认为您可以创建一个名称字典,其中每个名称都指向一个字典,而不是为每个名称创建一个变量。

>>> names=["lloyd", "alice", "tyler"]
>>> keys=["homework", "quizzes", "tests"]
>>> dic={ name.capitalize():{ key:[] for key in keys} for name in names}
>>> dic
{'Tyler': {'quizzes': [], 'tests': [], 'homework': []},
'Lloyd': {'quizzes': [], 'tests': [], 'homework': []},
'Alice': {'quizzes': [], 'tests': [], 'homework': []}}

现在访问Tyler只需使用:

>>> dic['Tyler']
{'quizzes': [], 'tests': [], 'homework': []}

关于python - 在 Python 循环中定义多个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16345456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com