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 Web框架Flask中使用七牛云存储实例
Feb 08 Python
浅析Python中else语句块的使用技巧
Jun 16 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
高效使用Python字典的清单
Apr 04 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
kali中python版本的切换方法
Jul 11 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
python二元表达式用法
Dec 04 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
在python3.9下如何安装scrapy的方法
Feb 03 Python
Python合并多张图片成PDF
Jun 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
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
php绘制一条弧线的方法
2015/01/24 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
把pandas转换int型为str型的方法
2019/01/29 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
气象学专业个人求职信
2014/04/22 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python