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

问题描述 投票:0回答:3

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

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

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', 
  }]
python python-3.x dictionary
3个回答
2
投票

我想你想要这样的东西

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

0
投票

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

Ex:

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'}]

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]})
© www.soinside.com 2019 - 2024. All rights reserved.