亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

python dict 合并

瀏覽:90日期: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 編程
相關文章:
主站蜘蛛池模板: 亚洲一区二区三区播放在线 | 黄色大片免费看 | 日本公妇色中文字幕 | 在线观看国产高清免费不卡黄 | 成人精品一区二区久久久 | 日韩美女强理论片 | 久久91精品国产99久久yfo | 欧美成人午夜剧场 | 国产精选一区 | 全免费a级毛片 | 欧美日韩一区二区三区四区 | 日韩欧美在线观看综合网另类 | 成人www | 国产精品久久久久久久人人看 | 一级黄色录像大片 | 一级黄色a | 日本一级www| 国产成人a一在线观看 | 黄大色黄美女精品大毛片 | 免费看的黄色录像 | 生活毛片 | 欧美国产小视频 | 银杏视频影院在线看 | 91青青青国产在观免费影视 | 亚洲无吗视频 | 日韩一区二区三区精品 | 91亚洲区国产区精品区 | 91麻豆国产在线观看 | 免费观看欧美精品成人毛片能看的 | 91大学生视频 | 91精品国产美女福到在线不卡 | 成人在线视频网 | 午夜精品国产爱在线观看不卡 | 久久久99精品久久久久久 | 国产一区二区免费播放 | 色aaa| 黑人操 | 中国hd高清╳xxx | 国产精品国产三级国产在线观看 | 亚洲免费人成在线视频观看 | 成年午夜视频免费观看视频 |