python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】

这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结【4种方法】,感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里。

由于内容很简单,就不再过多说明了,这里直接上代码,具体如下:

# !/usr/bin/env python

# -*- coding:utf-8 -*-

'''

__Author__:沂水寒城

功能: python列表去除方法总结(7种方法)

'''

import sys

reload(sys)

import copy

sys.setdefaultencoding("utf-8")

from collections import Counter

def func1(data_list):

'''

使用内置set方法去重

'''

return list(set(data_list))

def func2(data_list):

'''

借助字典方法fromkeys

'''

return list({}.fromkeys(data_list).keys())

def func3(data_list):

'''

使用类列表推导式

'''

res_list=[]

for one in data_list:

if not one in res_list:

res_list.append(one)

return res_list

def func4(data_list):

'''

使用sorted函数(其实本质上还是使用set方法进行的排序)

'''

res_list=copy.deepcopy(data_list)

res_list=sorted(set(data_list),key=data_list.index)

return res_list

def func5(data_list):

'''

使用"排序+计数"的方法

'''

result_list=[]

temp_list=sorted(data_list)

i=0

while i

if temp_list[i] not in result_list:

result_list.append(temp_list[i])

else:

i+=1

return result_list

def flagFunc(a):

'''

布尔函数

'''

if a in count_dict:

count_dict[a]+=1

return False

else:

count_dict[a]=1

return True

def func6(data_list):

'''

使用map方法

'''

global count_dict

count_dict={}

tmp_list=map(flagFunc,data_list)

return [data_list[i] for i in range(len(data_list)) if tmp_list[i]]

def func7(data_list):

'''

借助collections模块中的Counter方法(频度过滤方法)

'''

fre_list=Counter(data_list).most_common(len(data_list))

return [one[0] for one in fre_list]

if __name__=='__main__':

data_list=[12,4,7,3,4,2,4,3,5,12,78,9,0,4,5,0,44,3]

print func1(data_list)

print func2(data_list)

print func3(data_list)

print func4(data_list)

print func5(data_list)

print func6(data_list)

print func7(data_list)

结果如下:

[0, 2, 3, 4, 5, 7, 9, 12, 78, 44]

[0, 2, 3, 4, 5, 7, 9, 12, 78, 44]

[12, 4, 7, 3, 2, 5, 78, 9, 0, 44]

[12, 4, 7, 3, 2, 5, 78, 9, 0, 44]

[0, 2, 3, 4, 5, 7, 9, 12, 44, 78]

[12, 4, 7, 3, 2, 5, 78, 9, 0, 44]

[4, 3, 0, 5, 12, 2, 7, 9, 78, 44]

果然还是很有意思的哈!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle取差值集合

Oracle Minus关键字 SQL中的MINUS关键字 SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。如果有的话,那这一笔记录就被去除,而不会…

TensorFlow 2.0 - Checkpoint 保存变量、TensorBoard 训练可视化

文章目录1. Checkpoint 保存变量2. TensorBoard 训练过程可视化学习于:简单粗暴 TensorFlow 2 1. Checkpoint 保存变量 tf.train.Checkpoint 可以保存 tf.keras.optimizer 、 tf.Variable 、 tf.keras.Layer 、 tf.keras.Model path "./checkp.ckpt" …

coturn的负载均衡特性_高性能负载均衡

单服务器无论如何优化,无论采用多好的硬件,总会有一个性能天花板,当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。高性能集群的本质很简单,通过增加更多的服务器来提升系统整体的…

LintCode MySQL 1928. 网课上课情况分析 I

文章目录1. 题目2. 解题1. 题目 online_class_situation 表展示了一些同学上网课的行为活动。 每行数据记录了一名同学在退出网课之前,当天使用同一台设备登录课程后听过的课程数目(可能是0个)。 写一条 SQL 语句,查询每位同学第…

poj1284:欧拉函数+原根

何为原根?由费马小定理可知 如果a于p互质 则有a^(p-1)≡1(mod p)对于任意的a是不是一定要到p-1次幂才会出现上述情况呢?显然不是,当第一次出现a^k≡1(mod p)时, 记为ep(a)k 当k(p-1)时,称a是p的…

python输入十个数输出最大值_python输入十个数如何输出最大值

python输入十个数输出最大值的方法:1、如果是整数的话,使用函数【a, b, c map(int, input().split())】;2、使用函数【Xinput().split()】。 相关免费学习推荐:python视频教程 python输入十个数输出最大值的方法: 第一…

SQL Server 2005远程连接连不上的解决办法收藏 Microsoft给的方法

SQL Server 2005远程连接连不上的解决办法收藏 Microsoft给的方法http://support.microsoft.com/kb/914277 是可以的,但我怕以后还会遇到这问题,干脆我也写到blog中来. 我的情况是别人怎么连也连不上我本地的DB,我装了2005的sp2也不行,后来发现关了防火墙就可以了,但我总不能什…

LintCode MySQL 1921. 从不充值的玩家(where not in)

文章目录1. 题目2. 解题1. 题目 描述 A game database contains two tables, player table and recharge table. Write a SQL query to find all players who never recharge. 样例 https://www.lintcode.com/problem/players-who-never-recharge/description 2. 解题 -- …

古风一棵桃花树简笔画_广东有个现实版的“桃花源”,藏于秘境之中,最适合情侣来度假!...

上学时,初闻“芳草鲜美,落英缤纷”,并没有多大感触。直到后来长大离家,每每为生活奔波劳累时,为工作琐碎忧心费神时,才骤然明了当年五柳先生所描绘的“桃花源”该是多少人的脑中所想、心中所向……原以为这…

关于NIOS ii烧写的几种方式(转)

源:http://www.cnblogs.com/bingoo/p/3450850.html 1. 方法一:.sof和.elf全部保存在FPGA内,程序加载和运行也是在FPGA内部。 把FPGA的配置文件.sof通过JTAG方式下载(其实是在线运行)进入FPGA本身,此时在NIOS II的界面中&#xff…

clob和blob是不是可以进行模糊查询_你知道什么是 MySQL 的模糊查询?

作者 | luanhz责编 | 郭芮本文对MySQL中几种常用的模糊搜索方式进行了介绍,包括LIKE通配符、RegExp正则匹配、内置字符串函数以及全文索引,最后给出了性能对比。引言MySQL根据不同的应用场景,支持的模糊搜索方式有多种,例如应用最…

一个长文档里,包括封面、不同的章节,如果我想封面不设置页眉页脚,每个章节的页眉都不同,请问应该如何设置页眉页脚?

问:在一个长文档里,包括封面、不同的章节,如果我想封面不设置页眉页脚,每个章节的页眉都不同,请问应该如何设置页眉页脚? 答:如果只需要首页不同,可选择“文件”菜单下的“页面设置”…

LintCode 1917. 切割剩余金属

文章目录1. 题目2. 解题1. 题目 描述 金属棒工厂的厂长拥有 n 根多余的金属棒。 当地的一个承包商提出,只要所有的棒材具有相同的长度(用 saleLength 表示棒材的长度),就将金属棒工厂的剩余棒材全部购买。 厂长可以通过将每根棒…

太原理工电子信焦工程_电气工程及其自动化专业毕业后做什么工作?近几年就业和收入怎样...

本文内容为各大高校往届大学生真实的现身说法内容,但因为是往届,每年该专业的大学情况可能会发生略微变化,所以部分内容较今年,明年甚至以后几年,实际情况可能会略有不同但是对于本专业的相关信息还是非常有参考价值的…

js定时器和linux命令locate

js定时器如果带有参数,应该采用如下方式 setTimeout(function(){function(param)},1000); 匿名函数的方法。 linux locate基于数据库的查找方法。转载于:https://www.cnblogs.com/birdskyws/p/3974556.html

编程竞赛控制系统(PC2)使用说明书

编程竞赛控制系统(PC2)使用说明书 1. 系统简介 PC2是由美国加利福尼亚大学为国际大学生编程竞赛开发研制的竞赛控制系统。目前主要用于ACM/ICPC等国际编程竞赛。PC2最新的版本是8.5d,系统采用JAVA语言编写,可以运行在任何支持JAVA的平台(windows…

怎么查看linux日志里请求量最高的url访问最多的_实用的Linux高级命令,开发运维都要懂!...

在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭。像一些高级点的命令,比如说 Xargs 命令、管道命令、…

ggplot2箱式图两两比较_第十九章_使用ggplot2进行高级绘图

介绍ggplot2包使用形状、颜色和尺寸来对多元数据进行可视化用刻面图比较各组自定义ggplot2图19.1 R中的四种图形系统基础gridlatticeggplot2(用的较多)gghub需要的R包ggpolt2gridExtra(可以拼图)car19.2 ggplot2介绍library(ggplot2)ggplot(datamtcars, aes(xwt, ympg)) geom_p…

centos7 編譯 chmsee

安装libchm及相关的devel包,安装 xulrunner 及 devel 包!否则后面make的时候会出错! 到解压出来的chmsee/src目录下,找到与你系统对应的Makefile文件,我选的是Makefile.fedora,cp Makefile.fedora Makefile…

python调用cmd命令释放端口_详解python调用cmd命令三种方法

目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情…