使用zip()将两个列表组合到一个字典中,在app和multipal值中使用相同的键

时间:2018-03-16 09:07:29

标签: python-3.x list dictionary

我有两个列表,我尝试合并一个dict

list1 = ['sys_time', 'sys_time', 'sys_time']
list2 = ['2018-03-16T11:00:00.000-07:00', '2018-03-12T00:00:00.000-07:00', '2018-03-14T00:00:00.000-07:00']

dict(zip(list1, list2))

输出

{'sys_time': '2018-03-14T00:00:00.000-07:00'}

如何在app和multipal值中组合相同的键
那样:

{'sys_time': ['2018-03-16T11:00:00.000-07:00', 2018-03-12T00:00:00.000-07:00, '2018-03-14T00:00:00.000-07:00']} 

2 个答案:

答案 0 :(得分:1)

因为密钥都是相同的(即sys_time)

list1 = ['sys_time1', 'sys_time2', 'sys_time3']
list2 = ['2018-03-16T11:00:00.000-07:00', '2018-03-12T00:00:00.000-07:00', '2018-03-14T00:00:00.000-07:00']

dict(zip(list1, list2))

但是如果你坚持他们共享相同的密钥,可以将密钥与列表相关联,如下所示:

list1 = ['sys_time', 'sys_time', 'sys_time']
list2 = ['2018-03-16T11:00:00.000-07:00', '2018-03-12T00:00:00.000-07:00', '2018-03-14T00:00:00.000-07:00']
d = {}
for k,v in zip(list1, list2):
    d[k] = d.get(k, []) + [v]
print(d)

答案 1 :(得分:1)

我并不完全明白你的意思,但考虑将两个dict相互结合,就像输出一样可以像下面的代码一样:

x = ['sys_time', 'sys_time', 'sys_time']
y = ['2018-03-16T11:00:00.000-07:00', '2018-03-12T00:00:00.000-07:00', '2018-03-14T00:00:00.000-07:00']
dict = {x[0] : y[::]}
print(dict)