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写的服务监控程序实例
Jan 31 Python
python操作excel的方法
Aug 16 Python
python经典趣味24点游戏程序设计
Jul 26 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
pytorch的梯度计算以及backward方法详解
Jan 10 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
Feb 11 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
Python内置函数property()如何使用
Sep 01 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 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 eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
tensorflow获取变量维度信息
2018/03/10 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python 识别图片中的文字信息方法
2018/05/10 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
Django之腾讯云短信的实现
2020/06/12 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
浅析Python中字符串的intern机制
2020/10/03 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
质检部经理岗位职责
2014/02/19 职场文书
演讲主持词
2014/03/18 职场文书
亲属关系公证书
2014/04/08 职场文书
小学家长评语大全
2014/04/16 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
暑期培训班策划方案
2014/08/26 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript