【发布时间】:2021-10-21 22:55:46
【问题描述】:
我正在努力将第二个字典中的值合并到第一个字典中。
最初的字典是:
dictionary1 = {u'user1': [[u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A']],
u'user2': [[504, u'user2 Windows', u'date', u'date', u'20', u'', u'1']],
u'user3': [[511, u'user3 phone', u'date1', u'date2', u'name', u'1', u'E'],
[125, u'user3 phone',u'date1', u'date2', u'name', u'', u'8'],
[854, u'user3 phone', u'date1', u'date2', u'name', u'1', u'3'],
[890, u'user3 Windows', u'date1', u'date2', u'name', u'', u'4'],
[506, u'user3 Windows', u'date1', u'date2', u'name', u'', u'7'],
[454, u'user3 Windows', u'date1', u'date2', u'name', u'', u'E']]}
dictionary2 = {u'user1': [[u'N/A', u'N/A']],
u'user2': [[504, u'to_add']],
u'user3': [[890, u'to_add'],
[506, u'to_add'],
[454, u'to_add']]}
匹配值:用户 2 为 504,用户 3 为 890、506 和 454。我需要输出为:
dictionary1 = {u'user1': [[u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A']],
u'user2': [[504, u'user2 Windows', u'date', u'date', u'20', u'', u'1', u'to_add']],
u'user3': [[511, u'user3 phone', u'date1', u'date2', u'name', u'1', u'E'],
[125, u'user3 phone',u'date1', u'date2', u'name', u'', u'8'],
[854, u'user3 phone', u'date1', u'date2', u'name', u'1', u'3'],
[890, u'user3 Windows', u'date1', u'date2', u'name', u'', u'4', u'to_add'],
[506, u'user3 Windows', u'date1', u'date2', u'name', u'', u'7', u'to_add'],
[454, u'user3 Windows', u'date1', u'date2', u'name', u'', u'E', u'to_add']]}
我尝试了多种方法来检查和匹配,但我不知所措。这是我卡住的地方:
inter1 = []
for user1 in dictionary2:
for details1 in dictionary2[user1]:
inter1.append(details1[0])
inter1.append(details1[1])
print inter1
a = [[details1[1] for details1 in dictionary2[user1]] for user1 in dictionary2]
inter2 = {}
for user2 in dictionary1:
for details2 in dictionary1[user2]:
if details2[0] in inter1:
print user2, details2[2], details2[3], details2[4], details2[5], details2[6]
inter2[user2] = [details2[2], details2[3], details2[4], details2[5], details2[6], inter1]
但是这种方式只是将整个列表添加到每个列表的末尾...:(
【问题讨论】:
标签: python list python-2.7 dictionary