当前位置: 首页 > 编程笔记 >

python去重,一个由dict组成的list的去重示例

尉迟晔
2023-03-14
本文向大家介绍python去重,一个由dict组成的list的去重示例,包括了python去重,一个由dict组成的list的去重示例的使用技巧和注意事项,需要的朋友参考一下

背景:有一个list,里面的每一个元素都是dict,根据某一个key进行去重,在这里,key代表question

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# created by fhqplzj on 2017/12/07 上午11:38
from itertools import groupby
from operator import itemgetter
 
import pandas as pd
 
 
def distinct(items):
  questions = map(itemgetter('question'), items)
  df = pd.DataFrame({
    'items': items,
    'questions': questions
  })
  return df.drop_duplicates(['questions'])['items'].tolist()
 
 
def distinct2(items):
  exist_questions = set()
  result = []
  for item in items:
    question = item['question']
    if question not in exist_questions:
      exist_questions.add(question)
      result.append(item)
  return result
 
 
def distinct3(items):
  key = itemgetter('question')
  items = sorted(items, key=key)
  return [next(v) for _, v in groupby(items, key=key)]
 
 
def distinct4(items):
  from itertools import compress
  mask = (~pd.Series(map(itemgetter('question'), items)).duplicated()).tolist()
  return list(compress(items, mask))
 
 
if __name__ == '__main__':
  data = [
    {'question': 'a', 'ans': 'b'},
    {'question': 'b', 'ans': 'd'},
    {'question': 'a', 'ans': 'p'},
    {'question': 'b', 'ans': 'e'}
  ]
  print distinct4(data)

以上这篇python去重,一个由dict组成的list的去重示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 主要内容:函数格式,实际应用“去重”通过字面意思不难理解,就是删除重复的数据。在一个数据集中,找出重复的数据删并将其删除,最终只保存一个唯一存在的数据项,这就是数据去重的整个过程。删除重复数据是数据分析中经常会遇到的一个问题。通过数据去重,不仅可以节省内存空间,提高写入性能,还可以提升数据集的精确度,使得数据集不受重复数据的影响。 Panda DataFrame 对象提供了一个数据去重的函数 drop_duplicates(

  • 本文向大家介绍Python numpy 点数组去重的实例,包括了Python numpy 点数组去重的实例的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上代码,有详细注释 以上这篇Python numpy 点数组去重的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍python列表list保留顺序去重的实例,包括了python列表list保留顺序去重的实例的使用技巧和注意事项,需要的朋友参考一下 常规通过迭代或set方法,都无法保证去重后的顺序问题 如下,我们可以通过列表的索引功能,对set结果进行序列化 以上这篇python列表list保留顺序去重的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JS实现数组去重及数组内对象去重功能示例,包括了JS实现数组去重及数组内对象去重功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现数组去重及数组内对象去重功能。分享给大家供大家参考,具体如下: 大家在写项目的时候一定遇到过这种逻辑需求,就是给一个数组进行去重处理,还有一种就是给数组内的对象根据某一个属性,比如id,进行去重,下面我写了两个函数,都是可以达到这个效

  • 返回数组的所有不同值。 使用 ES6 的 Set 和 ...rest 操作符剔除重复的值。 const distinctValuesOfArray = arr => [...new Set(arr)]; distinctValuesOfArray([1, 2, 2, 3, 4, 4, 5]); // [1,2,3,4,5]

  • 本文向大家介绍JS实现数组去重,显示重复元素及个数的方法示例,包括了JS实现数组去重,显示重复元素及个数的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现数组去重,显示重复元素及个数的方法。分享给大家供大家参考,具体如下: 使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如