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抓取京东商城手机列表url实例代码
Dec 18 Python
Python生成随机数的方法
Jan 14 Python
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
Python搜索引擎实现原理和方法
Nov 27 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
简单了解Python3里的一些新特性
Jul 13 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
python asyncio 协程库的使用
Jan 21 Python
python 统计代码耗时的几种方法分享
Apr 02 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
你必须知道的Javascript知识点之"this指针"的应用
2013/04/23 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
python读取各种文件数据方法解析
2018/12/29 Python
python把转列表为集合的方法
2019/06/28 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
给老婆的婚前保证书
2014/02/01 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
培训心得体会怎么写
2016/01/25 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书