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中处理字符串的相关的len()方法的使用简介
May 19 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
python爬取各类文档方法归类汇总
Mar 22 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
numpy matrix和array的乘和加实例
Jun 28 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
python2.7实现邮件发送功能
Dec 12 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
Pytorch高阶OP操作where,gather原理
Apr 30 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
同时提取多条新闻中的文本一例
2006/10/09 PHP
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
js里怎么取select标签里的值并修改
2012/12/10 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
Python实现的读写json文件功能示例
2018/06/05 Python
实践Vim配置python开发环境
2018/07/02 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
优秀教师获奖感言
2014/01/31 职场文书
论文指导教师评语
2014/04/28 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
四查四看整改措施
2014/09/19 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
Go语言读取txt文档的操作方法
2022/01/22 Golang
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript