亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、前言

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

兩個列表的數(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}]

二、實現(xiàn)分析

這是粉絲寫的實現(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)

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

實際上兩行代碼就可以解決這個問題:

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ǎ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)來合并這兩個知識點。

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

相關(guān)文章

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

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

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

    Django中session登錄驗證操作指南

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

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

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

    深入探究Django中的Session與Cookie

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

    Pycharm+Python+PyQt5使用詳解

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

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

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

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

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