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 for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
Python标准库之itertools库的使用方法
Sep 07 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
Python控制Firefox方法总结
Jun 03 Python
Python 画出来六维图
Jul 26 Python
Django操作session 的方法
Mar 09 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
Python3 用什么IDE开发工具比较好
Nov 28 Python
python 调用Google翻译接口的方法
Dec 09 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
2006/10/09 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
python脚本后台执行方式
2019/12/21 Python
python实现超级玛丽游戏
2020/03/18 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
python 实现任务管理清单案例
2020/04/25 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
Java程序员面试题
2013/07/15 面试题
优秀通讯员事迹材料
2014/01/28 职场文书
环保口号大全
2014/06/12 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
庆七一晚会主持词
2015/06/30 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
七年级作文之英语老师
2019/10/28 职场文书