国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

python dict 合并

瀏覽:96日期: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 編程
相關文章:
主站蜘蛛池模板: www.精品| a国产视频| 成人性欧美丨区二区三区 | 18年大片免费在线 | 国产呦系列呦交 | hd欧美xxx欧美极品hd | 国产成人午夜福在线观看 | 成人区视频爽爽爽爽爽 | 在线成人免费看大片 | 六月丁香久久丫 | 欧美一级毛片免费大片 | a毛片全部播放免费视频完整18 | 免费一级网站 | 在线成人免费 | 青青影院一区二区免费视频 | 97视频在线免费 | 国产免费爽爽视频免费可以看 | 成人免费视频网址 | 麻豆传媒一区 | 一区二区三区久久 | 色在线网站免费观看 | 中文字幕一区二区三区精彩视频 | 99久免费精品视频在线观看2 | 日韩在线 | 中文 | 精品一区二区三区在线成人 | 一级毛片在线完整免费观看 | 男人的天堂在线免费视频 | 高清波多野结衣一区二区三区 | 91亚洲精品久久91综合 | 久草在线观看资源 | 欧美一二三 | 在线观看国产一区二区三区 | 成人永久免费视频 | 免费鲁丝片一级观看 | 一级片在线免费看 | 欧美成人高清手机在线视频 | 午夜国产精品久久久久 | 嫩草影院在线观看网站成人 | 亚洲综合第一欧美日韩中文 | 国产资源精品一区二区免费 | 欧洲成人r片在线观看 |