如何获得此代码以打印我想要的内容?

时间:2019-10-08 23:38:09

标签: python dictionary

我需要打印

“主题{topic}由{creator}创建于{date_added}。”使用FOR循环。我已根据作业将所有必需的信息输入字典。

我不知道我还有什么尝试。通过字典和FOR循环寻求帮助。

    #1.1
    topic1 = {
        "date_added": (2019,9.1),
        "creator": "Mark Scorgie"
    }

    topic2 = {
        "date_added": (2019,9.1),
        "creator": "Mark Scorgie"
    }

    topic3 = {
        "date_added": (2019,9.1),
        "creator": "Mark Scorgie"
    }

    #1.2
    topics = {
        "climbing": topic1,
        "travelling": topic2,
        "swimming": topic3
    }

    #2
    for topic, date_added, creator in sorted(topics.keys()): 
        print(f"Topic {topic} was created on {date_added} by {creator}")

我收到一条错误消息,提示未定义{date_added}。我已经尝试了sorted(topics.items())中的主题,并且尝试了sorted(topics.keys())中的主题,但是没有运气。不确定在循环的每次迭代中如何定义date_added和creator。

2 个答案:

答案 0 :(得分:1)

您的代码的第一个问题是您在“ date_added”键中使用了一个元组。应该是

topic1 = {
    "date_added": "2019,9.1",
    "creator": "Mark Scorgie"
}
for key, value in topics.items():
    print(f"Topic {key} was created on {value['date_added']} by {value['creator']}")

键将是主题的名称,值将是包含该主题信息的字典。您可以使用dict [key_name]

访问dict的值

答案 1 :(得分:0)

对于dict对象,您可以执行someDict.items()来分离键值和元素值。

因此,您可以使用for循环通过以下方式访问键和值:

someDict = {
    "abc" : "123"
}

for key, value in someDict.items():
    print(key)                #output: abc
    print(value)              #output: 123