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中编写并发程序
Feb 27 Python
python的文件操作方法汇总
Nov 10 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
详解python-图像处理(映射变换)
Mar 22 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
logging level级别介绍
Feb 21 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
Python字典和列表性能之间的比较
Jun 07 Python
Python图片验证码降噪和8邻域降噪
Aug 30 Python
Python 数据可视化之Matplotlib详解
Nov 02 Python
python文件与路径操作神器 pathlib
Apr 01 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
php分页函数
2006/07/08 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
php实现映射操作实例详解
2019/10/02 PHP
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
wxpython布局的实现方法
2019/11/01 Python
python爬虫添加请求头代码实例
2019/12/28 Python
医学院毕业生自荐信
2013/11/08 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
高三英语教学反思
2016/03/03 职场文书
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js