Python中的字典合并與列表合并技巧
前言
又到了每日分享Python小技巧的時(shí)候了,今天給大家分享的是Python中兩種常見(jiàn)的數(shù)據(jù)類型合并方法。
1 合并字典
在某些場(chǎng)景下,我們需要對(duì)兩個(gè)(多個(gè))字典進(jìn)行合并。例如需要將如下兩個(gè)字典進(jìn)行合并:
dict1 = {"a": 2, "b": 3, "c": 5} dict2 = {"a": 1, "c": 3, "d": 8}
且合并后的結(jié)果為:
{'c': 8, 'd': 8, 'a': 3, 'b': 3}
那么應(yīng)該如何操作呢?由于兩個(gè)字典并不能夠直接進(jìn)行相加,因此首先需要將各個(gè)字典轉(zhuǎn)換為Counter
類,然后再進(jìn)行相加。
具體代碼如下:
from collections import Counter dict1 = {"a": 2, "b": 3, "c": 5} dict2 = {"a": 1, "c": 3, "d": 8} result = Counter({}) for item in [dict1,dict2]: result += Counter(item) print(result) # Counter({'c': 8, 'd': 8, 'a': 3, 'b': 3})
當(dāng)然,如果只是兩個(gè)字典相加,那么只用一行代碼即可:
result = Counter(dict1) + Counter(dict2)
2 合并列表
在某些場(chǎng)景下,我們需要對(duì)兩個(gè)(多個(gè))列表進(jìn)行合并,從而得到一個(gè)包含有各個(gè)元素出現(xiàn)頻率的字典
例如需要將如下兩個(gè)列表:
a = ["天", "之", "道", "損", "有", "余", "而", "補(bǔ)", "不", "足"] b = ["人", "之", "道", "損", "不", "足", "而", "補(bǔ)", "有", "余"]
合并為:
Counter({'之': 2, '道': 2, '損': 2, '有': 2, '余': 2, '而': 2, '補(bǔ)': 2, '不': 2, '足': 2, '天': 1, '人': 1})
那么只需要通過(guò)如下代碼即可實(shí)現(xiàn):
from collections import Counter counter = Counter() for item in [a, b]: counter.update(item) print(counter)
當(dāng)然,除了在構(gòu)建詞表的時(shí)候可以使用這種方法,在對(duì)列表進(jìn)行重復(fù)元素查找或者統(tǒng)計(jì)時(shí)同樣可以使用本方法。
到此這篇關(guān)于Python中的字典合并與列表合并技巧的文章就介紹到這了,更多相關(guān)Python 字典列表合并內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python常用函數(shù)random()函數(shù)詳解
這篇文章主要介紹了python常用函數(shù)random()函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02Python數(shù)據(jù)分析之堆疊數(shù)組函數(shù)示例總結(jié)
這篇文章主要為大家介紹了Python數(shù)據(jù)分析之堆疊數(shù)組函數(shù)示例總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Python:__eq__和__str__函數(shù)的使用示例
這篇文章主要介紹了Python:__eq__和__str__函數(shù)的使用示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09Python+Pygame實(shí)戰(zhàn)之瘋狂吃水果游戲的實(shí)現(xiàn)
吃豆人和切水果這兩個(gè)游戲相信大家都不陌生吧,本文將利用Python中的Pygame模塊編寫出一款結(jié)合吃豆人+切水果的新游戲:瘋狂吃水果,感興趣的可以了解一下2022-06-06pyqt5利用pyqtDesigner實(shí)現(xiàn)登錄界面
這篇文章主要為大家詳細(xì)介紹了pyqt5利用pyqtDesigner實(shí)現(xiàn)登錄界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Python實(shí)現(xiàn)修改Excel文件的元數(shù)據(jù)
這篇文章將通過(guò)使用Python、Openpyxl模塊以及wxPython庫(kù),實(shí)現(xiàn)創(chuàng)建一個(gè)GUI界面來(lái)輸入元數(shù)據(jù),然后將這些元數(shù)據(jù)與Excel文件一起保存,感興趣的可以了解一下2023-04-04python求兩個(gè)時(shí)間的時(shí)間差(實(shí)例代碼)
我們?cè)谟胮ython進(jìn)行分析的時(shí)候,可能會(huì)碰到計(jì)算兩個(gè)日期的時(shí)間差。下面為大家介紹一下如何計(jì)算兩個(gè)時(shí)間的時(shí)間差,需要的朋友可以參考下2022-11-11