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 连连看连接算法
Nov 22 Python
Python实现把xml或xsl转换为html格式
Apr 08 Python
连接Python程序与MySQL的教程
Apr 29 Python
Python 中的with关键字使用详解
Sep 11 Python
python 换位密码算法的实例详解
Jul 19 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
python爬取音频下载的示例代码
Oct 19 Python
如何用Python徒手写线性回归
Jan 25 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
BootStrap 弹出层代码
2017/02/09 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
python pytest进阶之fixture详解
2019/06/27 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
sort命令的作用和用法
2013/08/25 面试题
怎么写好自荐书
2014/03/02 职场文书
个人租房协议书样本
2014/10/01 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
实验心得体会范文
2016/01/25 职场文书
vue实现滑动解锁功能
2022/03/03 Vue.js