根据用户输入在词典中创建词典

时间:2018-08-06 23:25:06

标签: python python-3.x dictionary

编程的新手,并通过创建一个待办事项列表应用程序来自学,该应用程序根据用户输入将要执行的事情存储在名为ThingsToDo的词典中。我正在使用dict.update函数,该函数正在运行,但是我想添加一个功能,以便在字典ThingsToDo中,每当用户输入要执行的新操作时,它就会存储新项作为ThingsToDo中的字典,在该子词典中包含“到期日期”和“状态”之类的内容。我该怎么办?

这是到目前为止的代码(刚刚开始):

ThingsToDo = {}

while True:
    item = input("What do you need to do? ")
    DueDate = input("When do you need to do it by? ")
    status = "Not done."

ThingsToDo.update({
    "Item": item,
    "Due Date": DueDate,
    "Status": status,
})

print(ThingsToDo)

2 个答案:

答案 0 :(得分:0)

您有许多事情要做,因此您可以将该字典放在列表或字典中。 您不能将其放在集合中,因为它必须是可哈希的。 如果选择了字典,则必须为每个元素选择一个“键”,对吗? 您可以阅读有关“数据结构” here的内容。 让我们尝试一下:

=CStr(Parameters!Year.Value - 1)

使用字典可以让您订购任务,但我不确定这是您的问题。让我们尝试通过添加数字来排序任务。

thingsToDo = []
newThingToDo = {
  'Item': 'I need a haircut',
  'DueDate': 'Right now',
  'Status': 'Done'
}    
thingsToDo.append(newThingToDo)

所以你的发型是任务编号5。

如果选择dict方式,则代码可能如下所示:

thingsToDo = {}
newThingToDo = {
  'Item': 'I need a haircut',
  'DueDate': 'Right now',
  'Status': 'Done'
}    
thingsToDo[5] = newThingToDo

答案 1 :(得分:0)

首先,我建议您考虑一下词典的关键是什么。我可以建议您使用“您需要做什么”作为关键的简单解决方案。效果很好:

ThingsToDo = {}

while True:
    item = input("What do you need to do? ")
    DueDate = input("When do you need to do it by? ")
    status = "Not done."

    ThingsToDo.update({item: {"Due Date": DueDate, "Status": status}})

    print(ThingsToDo)

输出示例:

What do you need to do? Wash the car
When do you need to do it by? 2018/09/01
{'Wash the car': {'Due Date': '2018/09/01', 'Status': 'Not done.'}}
What do you need to do? Sort papers
When do you need to do it by? 2018/08/23
{'Wash the car': {'Due Date': '2018/09/01', 'Status': 'Not done.'}, 
 'Sort papers': {'Due Date': '2018/08/23', 'Status': 'Not done.'}}