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

2024-04-20 14:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

所有任务名称都存储在一个列表中。 所有到期日都存储在不同的列表中。 等等。我怎样才能把这些单子组合起来得到这样一本字典。你知道吗

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

Tags: name名称应用程序类型列表taskdate字典
3条回答

这是一种在列表理解中使用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'}]

我猜你想要这样的东西

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

首先: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]})

相关问题 更多 >