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和libnmapd,提取Nmap扫描结果
Aug 23 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
python输入多行字符串的方法总结
Jul 02 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
Python中Yield的基本用法
Oct 18 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 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中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
php服务器的系统详解
2019/10/12 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python操作xml文件示例
2014/04/07 Python
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
python if not in 多条件判断代码
2016/09/21 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
Unix里面如何在后台运行程序
2016/10/14 面试题
采购部部门职责
2013/12/15 职场文书
就业表自我评价分享
2014/02/06 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书