去重

def list_dict_duplicate_removal():

data_list = [{"a": "123", "b": "321"}, {"a": "123", "b": "321"}, {"b": "321", "a": "123"}]

run_function = lambda x, y: x if y in x else x + [y]

return reduce(run_function, [[], ] + data_list)

if __name__ == '__main__':

print list_dict_duplicate_removal()

输出结果:

[{'a': '123', 'b': '321'}]

python列表中元素去重的几种方式

class StringReverse(object):

'''

列表去重,并按照原来的顺序排序

'''

# 1.利用set方法和sort方法,原序

def string_duplicate_1(self, s):

new_s = list(set(s)) # set无序

new_s.sort(key=s.index)

return new_s

# 2.用列表中的元素作为字典中的key生成一个新字典,然后获取字典的key,非原序

def string_duplicate_2(self, s):

a = {}

# fromkeys(s,v)该方法的功能是生成一个字典,字典的key是 s中的值,s为可迭代对象,可以为str,tuple,list,set,dict,v为每一个key的值,默认为None

return a.fromkeys(s).keys()

# 3.利用defaultdict, 非原序

def string_duplicate_3(self, s):

# 按照之前的顺序

from collections import defaultdict

a = defaultdict()

for x in s:

a[x] = 0

return a.keys()

# 4.最简单的循环,添加入新的列表,如果新列表中没有相同元素,则加入。原序

def string_duplicate_4(self, s):

new_s = []

for x in s:

if x not in new_s:

new_s.append(x)

return new_s

# 5.利用itertools的groupby方法。非原序

def string_duplicate_5(self, s):

from itertools import groupby

s.sort()

new_groupby = groupby(s)

new_s = []

for x,y in new_groupby:

new_s.append(x)

return new_s

# 6.reduce方法。非原序

def string_duplicate_6(self, s):

return reduce(lambda x,y:x if y in x else x + [y], [[],] + s)

if __name__ == "__main__":

stringReverse = StringReverse()

s = [1,3,2,34,4,6,6,7,1,4,8,98]

print "string_duplicate_1", stringReverse.string_duplicate_1(s)

print "string_duplicate_2", stringReverse.string_duplicate_2(s)

print "string_duplicate_3", stringReverse.string_duplicate_3(s)

print "string_duplicate_4", stringReverse.string_duplicate_4(s)

print "string_duplicate_5", stringReverse.string_duplicate_5(s)

print "string_duplicate_6", stringReverse.string_duplicate_6(s)

输出结果为:

string_duplicate_1 [1, 3, 2, 34, 4, 6, 7, 8, 98]

string_duplicate_2 [1, 2, 3, 4, 98, 6, 7, 8, 34]

string_duplicate_3 [1, 2, 3, 4, 98, 6, 7, 8, 34]

string_duplicate_4 [1, 3, 2, 34, 4, 6, 7, 8, 98]

string_duplicate_5 [1, 2, 3, 4, 6, 7, 8, 34, 98]

string_duplicate_6 [1, 2, 3, 4, 6, 7, 8, 34, 98]

python中列表去重有哪几种方法_python列表里的字典元素去重相关推荐

  1. python 列表去重(数组)的几种方法_python 列表去重(数组)的几种方法

    在抓取页面图片时,为避免重复抓取,将抓取的img结果(结果集是list类型的)通过集合去重.这里总结了下网上搜集到的几种方法. 一.方法1 代码如下 复制代码 ids = [1,2,3,3,4,2,3 ...

  2. python 列表去重(数组)的几种方法_python 列表去重(数组)的几种方法(转)

    Build 2015 Beijing & Windows 10 China Geek Challenge 6月5日,借着Build 2015在北京召开分会的东风,参加了这次由微软中国举 ...

  3. python csv库,Python 中导入csv数据的三种方法

    Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文 ...

  4. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

  5. python使用教程cmd啥意思-对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  6. python运行命令_对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  7. python运行方法_对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  8. 【python】Python中给List添加元素的4种方法分享

    List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作). 在Python中,向List添加元素,方法有如下4种方法 ...

  9. python中实现进度条的四种方法

    文章目录 (一): python程序中使用time模块可以让程序休眠 timesleep(t) 参数t是推迟执行的秒数 import time for i in range(0, 101, 2):ti ...

  10. python中自定义超时异常的几种方法

    最近在项目中调用第三方接口时候,经常会出现请求超时的情况,或者参数的问题导致调用异代码异常.针对超时异常,查询了python 相关文档,没有并发现完善的包来根据用户自定义的时间来抛出超时异常的模块.所 ...

最新文章

  1. 【Vue】IView之table组件化学习(二)
  2. CSS3 (animation)
  3. [转载]树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像...
  4. size-t数据类型 ssize-t数据类型
  5. GPTEE中的Crypto API的使用
  6. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...
  7. ROS2学习(十).ROS概念 - 主题的统计
  8. cookiejar包_爬虫之FileCookieJar
  9. javascript基础系列:字符串的常用方法
  10. 用C#生成随机中文汉字验证码
  11. IDEA 编写JDBC 第一个示例
  12. wpf使用Chart控件绘制线图
  13. FSCIL 小样本类增量学习
  14. 图解Stm32使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法
  15. 使用spring-data-redis实现incr自增
  16. 看看人家,才知道长期主义的好处!
  17. 【LaTeX写论文】把文章内容(字体)标红
  18. 浅谈一流捕鱼游戏必备要素
  19. 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机。
  20. 最大公约数和最小公倍数系列

热门文章

  1. 矩阵运算_如何理解矩阵对矩阵求导?
  2. cartographer探秘第四章之代码解析(八) --- 生成地图
  3. android apk 反编译,android编译错误解决方法
  4. 基于TensorRT完成NanoDet模型部署
  5. vi编辑器使用技巧篇1
  6. 车间调度建模系列6|扩展析取图之顺序不依赖准备时间
  7. 【从C到C++学习笔记】域运算符/new/delete运算符/重载/Name managling/extern C/带函数默认值参数
  8. C/C++ 取整函数ceil(),floor(),向上取整,向下取整
  9. NSGA-II资料合集
  10. 动态规划——最大整除子集C++