如何将3个列表映射到字典键

时间:2019-12-26 09:54:33

标签: python python-3.x dictionary

我正在尝试创建一种待办事项列表应用程序。问题是这样的:

所有任务名称都存储在列表中。 所有截止日期都存储在其他列表中。 等等。我如何组合这些列表以获得像这样的字典。

task_names = ['test1', 'hw 1']
date_due = ['17 Dec', '16 Jan']

given_task = [{
    'name' : 'test1',
    'date_due' : '17 Dec', 
  }
, {
    'name' : 'hw1',
    'date_due' : '16 Jan', 
  }]

3 个答案:

答案 0 :(得分:4)

我想你想要这样的东西

given_task = [{'name': i, 'date_due': j} for i, j in zip(task_names, date_due)]

答案 1 :(得分:0)

这是在列表理解中使用zipdict的一种方法

例如:

task_names = ['test1', 'hw 1']
date_due = ['17 Dec', '16 Jan']
keys = ['name', 'date_due']

print([dict(zip(keys, i)) for i in zip(task_names, date_due)])

输出:

[{'date_due': '17 Dec', 'name': 'test1'},
 {'date_due': '16 Jan', 'name': 'hw 1'}]

答案 2 :(得分:0)

首先:given_task不是有效的python结构。我认为您想要一个包含

这样的词典的列表
    given_task = [{
        'name' : 'test1',
        'date_due' : '17 Dec', 
      }
    , {
        'name' : 'hw1',
        'date_due' : '16 Jan', 
      }]

据我了解,任务名称和任务日期总是相同。在这种情况下,您可以遍历所有任务并将它们添加到列表中。

    given_task = []
    for i in range(len(task_names)):
        given_task.append({'name':task_names[i],'date_due':dates_due[i]})