最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)字典合并的五種方法(附示例代碼)

 更新時(shí)間:2024年04月03日 11:25:09   作者:碼農(nóng)研究僧  
在Python中,有多種方法可以通過使用各種函數(shù)和構(gòu)造函數(shù)來合并字典,在本文中,我們將討論一些合并字典的方法,并通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下

前言

從項(xiàng)目中了解到這個(gè)函數(shù):res = {**res, **tmp},也知道是字典的合并,且遇到相同的鍵會(huì)進(jìn)行覆蓋而不是追加

對(duì)此詳細(xì)了解Python字典合并的多個(gè)方法

由于字典的key是唯一的,對(duì)應(yīng)如果出現(xiàn)一樣的,會(huì)出現(xiàn)強(qiáng)覆蓋,這一點(diǎn)需要明確

1. 字典拼接

這種方法比較低效,不過也科普下

不能直接對(duì)兩個(gè) 字典對(duì)象使用 + 運(yùn)算符,需要將 字典轉(zhuǎn)換為列表,然后再進(jìn)行合并

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}

merged_dict = dict(list(dict1.items()) + list(dict2.items()))

print(f"dict1:{dict1}")
print(f"dict2:{dict2}")
print(merged_dict)  # 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

截圖如下:

在這里插入圖片描述

2. {**dict1, **dict2}

字典解包操作符**,它將兩個(gè)字典中的鍵值對(duì)解包并合并成一個(gè)新的字典

  • 返回一個(gè)新的合并后的字典,原始字典 dict1 和 dict2 不會(huì)被修改
  • 一行代碼中完成字典合并的簡潔方式,適用于不修改原始字典的情況
  • 合并任意數(shù)量的字典
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}

merged_dict = {**dict1, **dict2}
print(f"dict1:{dict1}")
print(f"dict2:{dict2}")
print(merged_dict)  # 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

截圖如下:

在這里插入圖片描述

3. dict.update()

update()方法可以用來將一個(gè)字典的鍵值對(duì)添加到另一個(gè)字典中

  • 修改了原始字典 dict1,dict2 的鍵值對(duì)被添加到了 dict1 中,但不會(huì)創(chuàng)建新的字典
  • 原地修改原始字典的方式,適用于需要在原始字典上進(jìn)行更新的情況
  • 只能用于將一個(gè)字典的內(nèi)容更新到另一個(gè)字典中
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}

dict1.update(dict2)

print(f"dict1:{dict1}")
print(f"dict2:{dict2}")

截圖如下:

在這里插入圖片描述

4. collections.ChainMap

collections.ChainMap允許將多個(gè)字典鏈在一起,形成一個(gè)邏輯上的單一映射

from collections import ChainMap

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}

merged_dict = ChainMap(dict1, dict2)
print(f"dict1:{dict1}")
print(f"dict2:{dict2}")
print(dict(merged_dict))  # 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

截圖如下:

在這里插入圖片描述

5. collections.defaultdict

collections.defaultdict可以用于創(chuàng)建一個(gè)默認(rèn)字典,可以方便地合并兩個(gè)字典

from collections import defaultdict

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}

merged_dict = defaultdict(int, dict1)
for key, value in dict2.items():
    merged_dict[key] += value

print(f"dict1:{dict1}")
print(f"dict2:{dict2}")
print(dict(merged_dict))  # 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

截圖如下:

在這里插入圖片描述

不過這種合并,如果值同樣的時(shí)候,不是強(qiáng)覆蓋而是相加

from collections import defaultdict

dict1 = {'a': 1, 'b': 2}
dict2 = {'a': 2, 'd': 4}

merged_dict = defaultdict(int, dict1)
for key, value in dict2.items():
    merged_dict[key] += value

print(dict(merged_dict)) # 輸出:  {'a': 3, 'b': 2, 'd': 4}

截圖如下:

在這里插入圖片描述

6. 彩蛋(不覆蓋合并)

對(duì)于上述的字典遇到同樣的鍵會(huì)強(qiáng)行覆蓋,如果需要兩個(gè)同樣的鍵,但不同的value值

方法一:使用新的key值

for key, value in tmp.items():
    if key not in res:
    # 此處不同鍵 則直接添加字典
        res[key] = value
    else:
    # 如果同鍵,則弄成一個(gè)新的key值,后續(xù)處理的時(shí)候,通過新舊key值的差異,在統(tǒng)一篩選過濾!
        # 計(jì)算重復(fù)次數(shù)
        count = 1
        new_key = f"{key}{count}"
        while new_key in res:
            count += 1
            new_key = f"{key}{count}i"
        res[new_key] = value  # 使用帶計(jì)數(shù)的新鍵存儲(chǔ)值

具體移除key值,可以通過如下方式:

if k.endswith('i'):  # 如果鍵以 'i' 結(jié)尾
    new_k = k[:-1]  # 移除 'i'

方法二:轉(zhuǎn)換為列表拼接

or key, value in tmp.items():
    if key in res:
        if not isinstance(res[key], list):
            # 如果值不是列表,將其轉(zhuǎn)換為列表
            res[key] = [res[key]]
        res[key].append(value)  # 追加新值到列表中
    else:
        res[key] = value  # 如果鍵不存在,直接添加鍵值對(duì)到字典中

以上就是python實(shí)現(xiàn)字典合并的五種方法的詳細(xì)內(nèi)容,更多關(guān)于python字典合并的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用sort()方法對(duì)數(shù)組進(jìn)行排序的操作指南

    Python使用sort()方法對(duì)數(shù)組進(jìn)行排序的操作指南

    在開發(fā)過程中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行排序,Python 中的 sort() 方法是用來對(duì)列表進(jìn)行排序的,它是一個(gè)非常常用且高效的排序工具,本文將通過一個(gè)實(shí)際項(xiàng)目的代碼示例,來講解如何使用 sort() 方法對(duì)數(shù)組進(jìn)行排序,需要的朋友可以參考下
    2025-06-06
  • python實(shí)現(xiàn)redis三種cas事務(wù)操作

    python實(shí)現(xiàn)redis三種cas事務(wù)操作

    本篇文章主要介紹了python實(shí)現(xiàn)redis三種cas事務(wù)操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解python 利用echarts畫地圖(熱力圖)(世界地圖,省市地圖,區(qū)縣地圖)

    詳解python 利用echarts畫地圖(熱力圖)(世界地圖,省市地圖,區(qū)縣地圖)

    這篇文章主要介紹了詳解python 利用echarts畫地圖(熱力圖)(世界地圖,省市地圖,區(qū)縣地圖),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python算法深入理解風(fēng)控中的KS原理

    python算法深入理解風(fēng)控中的KS原理

    這篇文章主要為大家介紹了python算法深入理解風(fēng)控中的KS原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • linux環(huán)境下的python安裝過程圖解(含setuptools)

    linux環(huán)境下的python安裝過程圖解(含setuptools)

    這篇文章主要介紹了linux環(huán)境下的python安裝過程圖解(含setuptools),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python實(shí)現(xiàn)小黑屋游戲的完整實(shí)例

    Python實(shí)現(xiàn)小黑屋游戲的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)小黑屋游戲的完整實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python help()函數(shù)用法詳解

    Python help()函數(shù)用法詳解

    這篇文章主要介紹了Python help()函數(shù)的作用,并舉例說明它的詳細(xì)用法,需要的朋友可以參考下
    2014-03-03
  • Python中匹配模糊的字符串問題分析

    Python中匹配模糊的字符串問題分析

    這篇文章主要介紹了Python中匹配模糊的字符串的過程,我們將學(xué)習(xí)如何使用process 模塊,該模塊允許我們在模糊字符串邏輯的幫助下有效地匹配或提取字符串,需要的朋友可以參考下
    2023-09-09
  • Python 實(shí)現(xiàn)自動(dòng)獲取種子磁力鏈接方式

    Python 實(shí)現(xiàn)自動(dòng)獲取種子磁力鏈接方式

    今天小編就為大家分享一篇Python 實(shí)現(xiàn)自動(dòng)獲取種子磁力鏈接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 使用Python輕松實(shí)現(xiàn)Word批量轉(zhuǎn)換為PDF

    使用Python輕松實(shí)現(xiàn)Word批量轉(zhuǎn)換為PDF

    在日常辦公和學(xué)習(xí)中,我們經(jīng)常需要將Word文檔轉(zhuǎn)換為PDF格式,本文將介紹如何使用Python快速,高效地實(shí)現(xiàn)Word到PDF的批量轉(zhuǎn)換,有需要的小伙伴可以了解下
    2025-09-09

最新評(píng)論

石渠县| 平泉县| 井陉县| 广安市| 汤原县| 唐河县| 梅河口市| 临漳县| 大方县| 永定县| 柯坪县| 洞口县| 乡城县| 太康县| 镇康县| 丘北县| 永嘉县| 静宁县| 华阴市| 城口县| 青田县| 仁寿县| 桦南县| 五指山市| 沙洋县| 依兰县| 文昌市| 全椒县| 珠海市| 瑞丽市| 嘉善县| 呼和浩特市| 灵丘县| 和平区| 比如县| 营口市| 牙克石市| 安吉县| 土默特右旗| 湘潭市| 涟源市|