久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

求大神解讀一段神級的Python代碼,謝謝!!

瀏覽:159日期:2022-06-27 08:00:40

問題描述

def combine_dicts(a, b): if b is None:return a return dict(a.items() + b.items() +[(k, combine_dicts(a[k], b[k])) for k in set(b) & set(a)])

a和b這里應(yīng)該都是dict型數(shù)據(jù),這個函數(shù)怎么理解呢,尤其是最后一個return那里??

問題解答

回答1:

這是 Python 2 的寫法。來個 Python 3.6 版:

def dict_deep_merge(a, b): if not b: return a return {**a, **b, **{k: dict_deep_merge(a[k], b[k]) for k in set(a) & set(b)}}

應(yīng)該高效一點(diǎn)。別的差不多。

并不算什么神級代碼,也不是很難理解。遞歸合并相同 key 的值而已。你需要知道的知識點(diǎn):

dict 的 items 方法

tuple 的相加

集合的交

dict 參數(shù)的意義

回答2:

函數(shù)的作用合并兩個dict比如a = {’a’: {’A’: 1}, ’b’: 1}b = {’a’: {’B’: 1}}合并成{’a’: {’A’: 1, ’B’: 1}, ’b’: 1}set(b) & set(a)是取a,c的key交集,如上a,b的key交集為a, 再遞歸運(yùn)行子dict回答3:

提問一下,代碼是有一定的問題吧,如果相同的key里,value值是字符串的話,items這個函數(shù)會報錯吧?

標(biāo)簽: Python 編程
主站蜘蛛池模板: 高陵县| 闻喜县| 成安县| 肃北| 黄龙县| 保康县| 伊金霍洛旗| 青神县| 手机| 淮安市| 兴安县| 大新县| 芷江| 卓尼县| 株洲市| 滕州市| 德格县| 科尔| 邹城市| 澄迈县| 保康县| 杂多县| 来宾市| 海门市| 龙胜| 贡嘎县| 永川市| 霞浦县| 凯里市| 武乡县| 蒙阴县| 双桥区| 镇雄县| 鄯善县| 班玛县| 西华县| 阿拉善左旗| 万山特区| 深水埗区| 曲麻莱县| 五华县|