亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

python dict 合并

瀏覽:115日期: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 編程
相關文章:
主站蜘蛛池模板: 免费人成在线观看网站品爱网 | 有码日韩 | 在线另类视频 | 色综合久久88色综合天天小说 | 精品免费在线视频 | 超清首页 国产 亚洲 丝袜 | 成人污网站 | 中文国产成人精品久久水 | 一级毛片在线观看视频 | 亚洲国产三级在线观看 | 国产中文字幕在线播放 | 国产成人做受免费视频 | 免费久久精品视频 | 久久厕所精品国产精品亚洲 | 亚洲自拍中文 | 一级毛片在播放免费 | 欧美顶级毛片在线播放 | 99久久免费看精品国产一区 | 亚洲男人的天堂久久香蕉网 | 亚洲国产日韩欧美 | 99精品国产成人一区二区在线 | 一区二区三区中文国产亚洲 | 亚洲一区二区三区在线网站 | 日本一区深夜影院深a | 亚洲人成免费 | 日本精品一区二区三区在线视频 | 国产亚洲欧美在线播放网站 | 日韩一区国产二区欧美三区 | 夜色福利久久久久久777777 | 国产高清一级片 | 男女男精品视频在线播放 | 久久久久国产一级毛片高清板 | 欧美日本一区视频免费 | 免费国产在线观看 | 成年女人免费又黄又爽视频 | 日韩视频欧美视频 | 亚洲欧美一区二区视频 | 国产高清免费观看 | a国产| 亚洲第一成年免费网站 | 欧美成人高清在线视频大全 |