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


Posted in Python onJanuary 21, 2019

背景:有一个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的去重示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python妹子图简单爬虫实例
Jul 07 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
python3实现随机数
Jun 25 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
详解Python用户登录接口的方法
Apr 17 Python
python各类经纬度转换的实例代码
Aug 08 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
Django正则URL匹配实现流程解析
Nov 13 Python
python eventlet绿化和patch原理
Nov 21 Python
Python实现计算字符串中出现次数最多的字符示例
Jan 21 #Python
python3.6数独问题的解决
Jan 21 #Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 #Python
对python列表里的字典元素去重方法详解
Jan 21 #Python
在Python中字典根据多项规则排序的方法
Jan 21 #Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 #Python
pycharm远程开发项目的实现步骤
Jan 20 #Python
You might like
使用php4加速网络传输
2006/10/09 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php去掉文件前几行的方法
2015/07/29 PHP
php验证码生成代码
2015/11/11 PHP
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Python实现的简单发送邮件脚本分享
2014/11/07 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
结束运行python的方法
2020/06/16 Python
pymysql模块使用简介与示例
2020/11/17 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
Python datetime模块的使用示例
2021/02/02 Python
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
红领巾广播站广播稿
2014/02/01 职场文书
给老婆的检讨书
2015/01/27 职场文书
研究生简历自我评
2015/03/11 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
冰雪公主观后感
2015/06/16 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS