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

作者:asd991936157 时间:2023-09-26 03:54:44 

背景:有一个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)

来源:https://blog.csdn.net/ASD991936157/article/details/78740610

标签:python,dict,list,去重
0
投稿

猜你喜欢

  • Python实现栈的方法详解【基于数组和单链表两种方法】

    2022-06-05 19:03:47
  • Python 获取windows桌面路径的5种方法小结

    2023-04-01 09:06:47
  • asp fso创建与删除文件与文件夹

    2008-12-31 16:07:00
  • Python xmltodict模块安装及代码实例

    2023-05-27 09:25:43
  • django 解决manage.py migrate无效的问题

    2021-08-18 02:28:51
  • Mysql事务中Update是否会锁表?

    2024-01-14 19:11:33
  • python3实现Dijkstra算法最短路径的实现

    2023-10-14 13:17:40
  • 微软建议的ASP性能优化28条守则(6)

    2008-02-29 11:43:00
  • C# Oracle数据库操作类实例详解

    2024-01-19 07:21:29
  • Go中的应用配置管理详解

    2023-06-21 00:40:55
  • 关于爬虫和反爬虫的简略方案分享

    2022-08-01 09:54:53
  • python 多进程通信模块的简单实现

    2021-06-13 08:21:32
  • 如何HttpServletRequest文件对象并储存

    2024-04-19 10:14:12
  • 详解Mybatis逆向工程中使用Mysql8.0版本驱动遇到的问题

    2024-01-16 16:48:19
  • python 机器学习的标准化、归一化、正则化、离散化和白化

    2023-12-15 11:50:03
  • php中使用key,value,current,next和prev函数遍历数组的方法

    2023-10-18 20:17:39
  • Python机器学习NLP自然语言处理Word2vec电影影评建模

    2022-09-07 09:40:35
  • 基于Pygame中Pygame模块的大战外星人实战

    2022-08-30 09:22:28
  • Python中偏函数用法示例

    2022-10-13 18:48:26
  • Python xlwt工具使用详解,生成excel栏位宽度可自适应内容长度

    2024-01-03 20:20:20
  • asp之家 网络编程 m.aspxhome.com