3 回答

TA贡献1802条经验 获得超4个赞
你可以用字典理解来做到这一点:
combined_dict = {i: {j: dict2[j] for j in dict1[i]} for i in dict1}
输出:
>>> from pprint import pprint as pp
>>> pp(combined_dict)
{'shopid1': {'userid1': ['2020-08-17 09:00', '2020-08-18 08:30'],
'userid2': ['2020-08-16 11:00', '2020-08-15 13:30'],
'userid3': ['2020-08-18 09:30',
'2020-08-18 10:00',
'2020-08-18 11:30']}}

TA贡献1735条经验 获得超5个赞
dict1 = {'shopid1':['userid1','userid2','userid3']}
dict2 = {'userid1':['2020-08-17 09:00','2020-08-18 08:30'],
'userid2':['2020-08-16 11:00','2020-08-15 13:30'],
'userid3':['2020-08-18 09:30','2020-08-18 10:00','2020-08-18 11:30']}
combined_dict ={'shopid1':{'userid1':['2020-08-17 09:00','2020-08-18 08:30'],
'userid2':['2020-08-16 11:00','2020-08-15 13:30'],
'userid3':['2020-08-18 09:30','2020-08-18 10:00','2020-08-18 11:30']}}
for i in combined_dict:
print(i)
a=combined_dict[i]
for j in a:
b=a[j]
print(j)
for k in b:
print(k)

TA贡献1829条经验 获得超7个赞
这是“理解”的一个很好的例子,它被优化为比循环快得多:
combined_dict = { k:
{u:t for (u,t) in dict2.items() if u in v}
for (k,v) in dict1.items()
}
添加回答
举报