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/n/371287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
FUMFXFUMFX
上一篇 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

发表回复

登录后才能评论