use*_*377 5 python dictionary loops
我想要做的是定义三个非常相似的词典,只有细微的差别。如果您认识到这一点,这是 Codeacademy 的 Python 课程中的问题之一,我希望做得更优雅一些。无论如何,这就是我所拥有的:
import string
for name in ["lloyd", "alice", "tyler"]:
name = {"name": string.capitalize(name), "homework": [], "quizzes": [], "tests": []}
Run Code Online (Sandbox Code Playgroud)
这不起作用。我想要的是三个字典,其中的名称为“lloyd”、“alice”和“tyler”,并带有他们名字的键(但大写)、“作业”、“测验”和“测试”
澄清一下,我想要的输出相当于:
lloyd = {"name": "Lloyd", "homework": [], "quizzes": [], "tests": []}
alice = {"name": "Alice", "homework": [], "quizzes": [], "tests": []}
tyler = {"name": "Tyler", "homework": [], "quizzes": [], "tests": []}
Run Code Online (Sandbox Code Playgroud)
我认为您可以创建一个名称字典,其中每个名称都指向一个字典,而不是为每个名称创建一个变量。
>>> 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': []}}
Run Code Online (Sandbox Code Playgroud)
现在访问Tyler
只需使用:
>>> dic['Tyler']
{'quizzes': [], 'tests': [], 'homework': []}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32001 次 |
最近记录: |