Python字典:我想把多个列表组合成一个字典



我现在有3个列表:

  • 任务名称
  • 开始时间
  • 结束时间

我用

dict(zip(starting_tasks,zip(starting_time,end_time)))

并得到如下输出:

{'Task1': ('time1', 'time2'), 'Task2': ('time3', 'time4')}

我希望输出如下:

mydict = 
{
​​​​​​​​'Task1': {​​​​​​​'start_time': 'time1', 'end_time': 'time2'}​​​​​​​, 
'Task2': {​​​​​​​​'start_time': 'time3', 'end_time': 'time4'}
...
'TaskN': {​​​​​​​​'start_time': 'timeX', 'end_time': 'timeY'}
​​​​​​​​}​​​​​​​​

关键词"start_time"one_answers";end_time"不在任何列表中。它们只是我想要用作键的字符串。

我有没有办法把这些列表或字典结合起来得到上面的结果?最后,我需要这样的格式:dict{key: dict{key:value, key:value},…}

这要归功于字典理解。顺便说一下,您的三个列表必须都是相等的大小,否则zip将停止使用最短的列表。

>>> l1, l2, l3 = ["task1", "task2"], ["start1_value", "start2_value"], ["end1_value", "end2_value"]
>>> d = {task: {"start_time": start, "end_time": end} for (task, start, end) in zip(l1, l2, l3)}
>>> d
{'task1': {'start_time': 'start1_value', 'end_time': 'end1_value'}, 'task2': {'start_time': 'start2_value', 'end_time': 'end2_value'}}

所有三个列表必须具有相同的长度才能使此工作。如果你不想使用zip,那么下面的例子可以为你工作。

tasknames = ['task1', 'task2']
start_time = ['time1', 'time2']
end_time = ['time3', 'time4']
dict = {}
for i in range(len(tasknames)):
dict[tasknames[i]] = {'start_time':start_time[i], 'end_time': end_time[i]}
print(dict)

输出:

{
'task1': {'start_time': 'time1', 'end_time': 'time3'},
'task2': {'start_time': 'time2', 'end_time': 'time4'}
}

相关内容

  • 没有找到相关文章

最新更新