国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

瀏覽:142日期: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ù)會報(bào)錯吧?

標(biāo)簽: Python 編程
主站蜘蛛池模板: 伽师县| 霍林郭勒市| 临洮县| 瑞金市| 教育| 文昌市| 商水县| 禄劝| 那曲县| 晴隆县| 禹州市| 麻栗坡县| 关岭| 康保县| 武汉市| 门源| 民和| 吴旗县| 靖安县| 彰化县| 讷河市| 北碚区| 子洲县| 泰兴市| 嘉鱼县| 张家界市| 巧家县| 丹凤县| 遂溪县| 邹平县| 商都县| 辽阳县| 北宁市| 六枝特区| 佛山市| 尼勒克县| 深圳市| 临武县| 太白县| 涿鹿县| 胶南市|