欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python編程根據(jù)字典列表相同鍵的值進(jìn)行合并

 更新時(shí)間:2021年10月03日 12:58:27   作者:曲鳥  
這篇文章主要介紹了來學(xué)習(xí)Python字典列表根據(jù)相同鍵的值進(jìn)行合并的操作方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

一、前言

今天有粉絲咨詢了一個(gè)問題,他現(xiàn)在有兩個(gè)列表,它們的元素都為字典,且字典都有一個(gè)key為id,現(xiàn)在想把這兩個(gè)字典根據(jù)id合并為一個(gè)字典,類型下面的效果:

兩個(gè)列表的數(shù)據(jù)為:

a_list = [{'id': 1, 'value': 11}, {'id': 2, 'value': 22}, {'id': 3, 'value': 33}]
b_list = [{'id': 1, 'name': 'a'}, {'id': 2, 'name': 'b'}, {'id': 3, 'name': 'c'}]

期望合并的結(jié)果

[{'id': 1, 'name': 'a', 'value': 11},
 {'id': 2, 'name': 'b', 'value': 22},
 {'id': 3, 'name': 'c', 'value': 33}]

二、實(shí)現(xiàn)分析

這是粉絲寫的實(shí)現(xiàn)代碼:

for i in range(len(b_list)):
    for a in a_list:
        if b_list[i]['id'] == a['id']:
            b_list[i]['value'] = a['value']
print(b_list)

通過兩個(gè)for循環(huán)來將a_list中元素字典id值等于b_list元素字段id值的值加入到對應(yīng)的b_list元素字典中。

實(shí)際上兩行代碼就可以解決這個(gè)問題:

1.我們可以先通過推導(dǎo)式將a_list重新組裝為{id:value}的形式

a_values = {a['id']: a['value'] for a in a_list}

a_values的值為:

{1: 11, 2: 22, 3: 33}

2.然后再通過推導(dǎo)式和字典解構(gòu)再合并的方式將值與b_list重新組裝:

res_list = [{**b, **{'value': a_values[b['id']]}} for b in b_list]

組裝后的列表值為

res_list的值為: 
[{'id': 1, 'name': 'a', 'value': 11},
 {'id': 2, 'name': 'b', 'value': 22}, 
 {'id': 3, 'name': 'c', 'value': 33}]

完整示例代碼

a_list = [{'id': 1, 'value': 11}, {'id': 2, 'value': 22}, {'id': 3, 'value': 33}]
b_list = [{'id': 1, 'name': 'a'}, {'id': 2, 'name': 'b'}, {'id': 3, 'name': 'c'}]
a_values = {a['id']: a['value'] for a in a_list}
res_list = [{**b, **{'value': a_values[b['id']]}} for b in b_list]
print('res_list的值為:', res_list)

當(dāng)然一行代碼也可以搞定,直接把兩個(gè)推導(dǎo)式合并

res_list = [{**b, **{'value': {a['id']: a['value'] for a in a_list}[b['id']]}} for b in b_list]

但這就是為了裝X而寫代碼了,毫無必要!

三、總結(jié)

就是推導(dǎo)式和字典通過**解構(gòu)來合并這兩個(gè)知識點(diǎn)。

以上就是Python學(xué)習(xí)字典列表根據(jù)相同鍵的值進(jìn)行合并的詳細(xì)內(nèi)容,更多關(guān)于Python字典列表鍵值合并的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python基本數(shù)據(jù)類型詳細(xì)介紹

    Python基本數(shù)據(jù)類型詳細(xì)介紹

    Python提供的基本數(shù)據(jù)類型主要有:布爾類型、整型、浮點(diǎn)型、字符串、列表、元組、集合、字典等等
    2014-03-03
  • Django中session登錄驗(yàn)證操作指南

    Django中session登錄驗(yàn)證操作指南

    本文介紹了如何使用Django中的session登錄驗(yàn)證來保護(hù)網(wǎng)站的安全性。在此過程中,我們首先介紹了Django的認(rèn)證架構(gòu)和基本概念,然后我們深入探討了如何使用session實(shí)現(xiàn)登錄驗(yàn)證功能。最后,我們解釋了如何創(chuàng)建一個(gè)Custom?User?Model,以及如何使用它來自定義用戶對象。
    2023-04-04
  • 詳解Python中matplotlib模塊的繪圖方式

    詳解Python中matplotlib模塊的繪圖方式

    Matplotlib是Python中最受歡迎的數(shù)據(jù)可視化軟件包之一,它是?Python常用的2D繪圖庫,同時(shí)它也提供了一部分3D繪圖接口。本文將詳細(xì)介紹Matplotlib的繪圖方式,需要的可以參考一下
    2022-07-07
  • 深入探究Django中的Session與Cookie

    深入探究Django中的Session與Cookie

    周末小閑在家研究了下django的 cookie 和 session,所以下面這篇文章主要給大家深入地介紹了關(guān)于Django中Session與Cookie的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面跟著小編來一起看看吧。
    2017-07-07
  • Pycharm+Python+PyQt5使用詳解

    Pycharm+Python+PyQt5使用詳解

    這篇文章主要介紹了Pycharm+Python+PyQt5使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python實(shí)現(xiàn)在PyPI上發(fā)布自定義軟件包的方法詳解

    Python實(shí)現(xiàn)在PyPI上發(fā)布自定義軟件包的方法詳解

    在Python中我們經(jīng)常使用pip來安裝第三方Python軟件包,其實(shí)我們每個(gè)人都可以免費(fèi)地將自己寫的Python包發(fā)布到PyPI上。本文我們就將詳細(xì)介紹如何發(fā)布測試包,需要的可以參考一下
    2022-06-06
  • 在Django的session中使用User對象的方法

    在Django的session中使用User對象的方法

    這篇文章主要介紹了在Django的session中使用User對象的方法,Django是眾Python web開發(fā)框架中人氣最高的一個(gè),需要的朋友可以參考下
    2015-07-07
  • 最新評論