我现在有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'}
}