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 简单备份文件脚本v1.0的实例
Nov 06 Python
获取python文件扩展名和文件名方法
Feb 02 Python
python中sys.argv函数精简概括
Jul 08 Python
python 调用有道api接口的方法
Jan 03 Python
对python判断是否回文数的实例详解
Feb 08 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
python如何代码集体右移
Jul 20 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 Python
python神经网络Xception模型
May 06 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
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
初识php MVC
2014/09/10 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
jQuery 选择器理解
2010/03/16 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python 转义字符详细介绍
2017/03/21 Python
python的多重继承的理解
2017/08/06 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python爬虫 requests-html的使用
2020/11/30 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
年终自我鉴定
2013/10/09 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
主持人演讲稿
2014/05/13 职场文书
预备党员半年考察意见
2015/06/01 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL