色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

python dict 合并

瀏覽:103日期:2022-06-28 13:55:05

問題描述

現有 a , b 兩個字典,他們都有一個共同的id 1 , 實現dict的合并和mysql中 select a.id,a.MUT,b.neighbor from a full join b on a.id = b.id執行結果很類似

a = {'id': '1','MUT': '1500', } b = {'id': '1','neighbor': [2] } # result = addfunction(a,b) result = {'id': '1','MUT': '1500','neighbor': [2] }

如何實現?

考慮復雜情況:

a = [ {'id': '1','MUT': '1500', }, {'id': '2','MUT': '1500', }]b = [ {'id': '1','neighbor': [2] }, {'id': '3','neighbor': [2] }]# result = addfunction(a,b)result = [ {'id': '1','MUT': '1500','neighbor': [2] }, {'id': '2','MUT': '1500', }, {'id': '3','neighbor': [2] }]

問題解答

回答1:

l_a = len(a)l_b = len(b)b_map = {}result = []for _ in range(l_b): i = b.pop() b_map[i[’id’]] = ifor _ in range(l_a): i = a.pop() if i[’id’] in b_map:i.update(b_map.pop(i[’id’])) result.append(i)result.extend(b_map.values())print(result)[{’MUT’: ’1500’, ’id’: ’2’}, {’MUT’: ’1500’, ’id’: ’1’, ’neighbor’: [2]}, {’id’: ’3’, ’neighbor’: [2]}]回答2:

from collections import defaultdictdef combineListDict(l1,l2,joinKeys = ['id']): d = defaultdict(dict) for l in (l1, l2):for elem in l: if len(joinKeys) == 1:joinKeysStr = elem[joinKeys[0]] else:joinKeysStr = reduce((lambda x, y: str(elem[x]) + str(elem[y])),joinKeys) d[joinKeysStr].update(elem) return d.values()

因為join on 條件可能時多個值,我在stack上找了個代碼改了一下。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 交videos人妖 | 国产精品欧美亚洲 | 精品精品国产高清a毛片 | 一本久道综合久久精品 | 日韩美女大全视频在线 | 三级黄色片网址 | 欧美激情视频一级视频一级毛片 | 亚洲精品一区二区久久 | 中文字幕在线视频在线看 | 欧美性高清视频免费看www | 久草视频在线看 | 97在线免费看视频 | 色偷偷女男人的天堂亚洲网 | 美女黄色一级毛片 | 99久久免费国产香蕉麻豆 | 成人a毛片一级 | 97视频网站 | 精品久久一区 | 国产精品三级手机在线观看 | 免费在线看黄网址 | 波多野结衣中文无毒不卡 | 成人欧美午夜视频毛片 | 国产高清美女一级毛片久久 | 亚洲精品一区二区三区四区 | 亚洲成a人在线观看 | 亚洲欧洲久久久精品 | 国产三级日本三级日产三 | 久草观看 | 久久福利青草精品资源站免费 | 国产专区中文字幕 | 亚洲高清色 | 97超频国产在线公开免费视频 | 国产精品久久久久久久久久久不卡 | 视频在线二区 | 亚洲福利国产精品17p | 欧美freesex10一13黑人 | 国产免费a级片 | 一级特黄特色的免费大片视频 | 欧美亚洲日本一区二区三区浪人 | 欧美午夜不卡在线观看最新 | 玖玖精品在线观看 |