List根據某個欄位去重詳解

一、List根據某個欄位去重並求和

def sum_unique_values(input_list, field):
    unique_dict = {}
    for item in input_list:
        if item[field] not in unique_dict:
            unique_dict[item[field]] = item
        else:
            unique_dict[item[field]][field] += item[field]
    return list(unique_dict.values())

去重是list操作中最常用的一種方法,而在某些情況下,我們不僅需要去重,還要對某個欄位進行求和。這時候我們可以通過創建一個以已有欄位作為key的字典來實現。對於遍歷到的item,如果該欄位的值不在字典中,則將其以該欄位為key,item為value存入字典。否則,在字典中已經存在該欄位時,直接將該欄位的值加上原有的值即可。最後返回所有value即可獲得去重並求和的list。

二、List根據某個欄位刪除

def remove_duplicates(input_list, field):
    unique_dict = {}
    for item in input_list:
        if item[field] not in unique_dict:
            unique_dict[item[field]] = item
    return list(unique_dict.values())

和上面相似,但是我們不進行求和,而是進行刪除操作。同樣地,我們先創建一個以某個欄位為key的字典,遍歷時,只有當該欄位值不在字典中,才將其存儲下來。最終返回所以value,即可實現去重並刪除操作。

三、List根據兩個欄位去重分組

def group_duplicates(input_list, field1, field2):
    unique_dict = {}
    for item in input_list:
        key = (item[field1], item[field2])
        if key not in unique_dict:
            unique_dict[key] = [item]
        else:
            unique_dict[key].append(item)
    return list(unique_dict.values())

需要根據兩個欄位同時去重,可以通過將兩個欄位組成一個元組作為key,遍歷時判斷該key是否在字典中,若不存在,則將其以key為鍵值,以item為值存入字典。否則,在已有key中存放對應的item即可。

四、List數組根據某個欄位排序選取3~5個

def sort_and_slice(input_list, field, reverse=True):
    sorted_list = sorted(input_list, key=lambda x: x[field], reverse=reverse)
    return sorted_list[2:5]

有時,我們需要根據某個欄位進行排序,並選擇指定數量的元素。這時,Python中的sorted函數可以使用。在該函數中,我們可以設置關鍵字參數key指定以該欄位進行排序,reverse則表示降序還是升序排序。最後,我們將排序後的list進行切片即可選取指定範圍內的元素。

原創文章,作者:FUMFX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/371287.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FUMFX的頭像FUMFX
上一篇 2025-04-23 00:48
下一篇 2025-04-23 00:48

相關推薦

  • Tensor to List的使用

    Tensor to List是TensorFlow框架提供的一個非常有用的函數,在很多的深度學習模型中都會用到。它的主要功能是將TensorFlow中的張量(Tensor)轉換為P…

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • 如何使用Python將輸出值賦值給List

    對標題進行精確、簡明的解答:本文將從多個方面詳細介紹Python如何將輸出的值賦值給List。我們將分步驟進行探討,以便讀者更好地理解。 一、變數類型 在介紹如何將輸出的值賦值給L…

    編程 2025-04-28
  • Python List查找用法介紹

    在Python中,list是最常用的數據結構之一。在很多場景中,我們需要對list進行查找、篩選等操作。本文將從多個方面對Python List的查找方法進行詳細的闡述,包括基本查…

    編程 2025-04-28
  • Navicat導出欄位識別為文本而不是數值

    解決方法:使用特定的代碼將導出的欄位識別為文本,而不是數值,下面將從多個方面進行詳細闡述。 一、ASCII碼轉換 在導出的文件中,將數值欄位使用ASCII碼轉換,即可讓這些欄位被識…

    編程 2025-04-28
  • mysessioncontext 根據jessionid獲取session為空解決方法

    當我們在使用web應用程序開發時,mysessioncontext 根據jessionid獲取session為空是一個常見的錯誤。為了避免這個錯誤的發生,我們必須了解什麼是sess…

    編程 2025-04-28
  • 如何使用Java List根據某一欄位升序排序

    本文將詳細介紹在Java中如何使用List集合按照某一欄位進行升序排序。具體實現思路如下: 一、定義需要進行排序的Java對象 首先,我們需要定義一個Java對象,該對象包含多個字…

    編程 2025-04-27
  • Python DataFrame轉List用法介紹

    Python中常用的數據結構之一為DataFrame,但有時需要針對特定需求將DataFrame轉為List。本文從多個方面針對Python DataFrame轉List詳細介紹。…

    編程 2025-04-27
  • 如何使用MySQL欄位去重

    本文將從多個方面為您詳細介紹如何使用MySQL欄位去重並給出相應的代碼示例。 一、SELECT DISTINCT語句去重 MySQL提供了SELECT DISTINCT語句,通過在…

    編程 2025-04-27
  • Python中list和tuple的用法及區別

    Python中list和tuple都是常用的數據結構,在開發中用途廣泛。本文將從使用方法、特點、存儲方式、可變性以及適用場景等多個方面對這兩種數據結構做詳細的闡述。 一、list和…

    編程 2025-04-27

發表回復

登錄後才能評論