我正在努力將第二個詞典中的值合并到初始詞典中。
初始字典是:
dictionary1 = {u'user1'/span>: [[u'N/A'/span>, u'N/A'/span>, u'N/A'/span>, u'N/A'/span>, 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/span>, u'N/span>]]。
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'/span>: [[u'N/A'/span>, u'N/A'/span>, u'N/A'/span>, u'N/A'/span>, 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'/span>, u'date1', u'date2', u'name', u'', u'4', u'to_add'] 。
[506, u'user3 Windows'/span>, u'date1'/span>, u'date2'/span>, 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]
但是這種方式只是將整個串列添加到每個串列的末尾...:(
)uj5u.com熱心網友回復:
你可以通過使用items()方法來遍歷一個字典:
for k, v in dictionary2.items()。
print(k, v)
>>>user1 [['N/A', 'N/A']]
>>>user2 [[504, 'to_add']]
>>>。 user3 [[890, 'to_add'], [506, 'to_add'], [454, 'to_add'] ] 。
這應該對你有很大的幫助
。第二:你把事情搞得太復雜了。當你只想修改 dictionary1 的時候,為什么要創建中間的 dictionary?
for k,v in dictionary2.items()。
for lst in v:
for lst2 in dictionary1[k]:
if lst[0] == lst2[0] 。
lst2 = lst[1:] 。
uj5u.com熱心網友回復:
我已經成功地做到了--在這里發帖給其他需要一些想法的人。這不是最漂亮的,但它能起作用:
interm = {}。
for user in dictionary1:
if dictionary2[user]:
interm[user] = []
for element in dictionary1[user]:
for element2 in dictionary2[user]。
if str(element[0]) == str(element2[0]) 。
l = []
l.append(element[0])
l.append(element2[1] )
interm[user].append(l)
for user in dictionary1:
if interm[user]:
for element3 in dictionary1[user]。
for element4 in interm[user]:
if str(element3[0]) == str(element4[0]) 。
element3.append(element4[1])
而輸出則變成:
dictionary1 = {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'/span>, u'date1', u'date2', u'name', u'', u'4', u'to_add'] 。
[506, u'user3 Windows'/span>, u'date1'/span>, u'date2'/span>, u'name', u', u'7', u'to_add'] 。
[454, u'user3 Windows', u'date1', u'date2', u'name', u'', u'E', u'to_add']】。]
u'user2': [
[504, u'user2 Windows', u'date', u'date', u'20', u'', u'1', u'to_add']】。]
u'user1': [[u'N/A'/span>, u'N/A'/span>, u'N/A'/span>, u'N/A'/span>, u'N/A', u'N/A', u'N/A', u'N/A']]}。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/309363.html
標籤:
下一篇:云效研發協同服務相關協議條款
