浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
python列表元素去重后如何保持原来的顺序不变
原列表:
list1 = [1,2,1,4,9,3,5,2,6,7,3,1,6,8,4,0]
去重,使用集合set来去重:
list2 = list(set(list1)
set去重得到的list2默认按升序进行排序:
list2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使list2按照list1元素出现的顺序进行排序(也就是原来的顺序):
list2.sort(key = list1.index)
此时,list2 = [1, 2, 4, 9, 3, 5, 6, 7, 8, 0]
具体的实现过程如下:
补充拓展:python爬取链接去重
我就废话不多说了,直接上代码吧!
from urllib.request import urlopen from bs4 import BeautifulSoup import re pages = set() def getLinks(pageUrl): global pages html = urlopen("http://en.wikipedia.org"+pageUrl) bsObj = BeautifulSoup(html) for link in bsObj.findAll("a",href = re.compile("^(/wiki/)")): if 'href' in link.attrs: if link.attrs['href'] not in pages: #遇到新的页面 newPage = link.attrs['href'] print(newPage) pages.add(newPage) getLinks(newPage) getLinks("")
以上这篇浅谈python元素如何去重,去重后如何保持原来元素的顺序不变就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python对列表去重的多种方法(四种方法)
无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序, 后面两种方法可以保持原来的顺序. 下面的代码都在Python3下测试通过, Python2下请自行测试 1. 使用set的特型,python的set和其他语言类似, 是一个无序不重复元素集 orgList = [1,0,3,7,7,5] #list()方法是把字符串str或元组转成数组 formatL
-
Python实现去除列表中重复元素的方法小结【4种方法】
本文实例讲述了Python实现去除列表中重复元素的方法.分享给大家供大家参考,具体如下: 这里一共使用了四种方法来去除列表中的重复元素,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:去除列表中的重复元素 ''' def func1(one_list): ''''' 使用集合,个人最常用 ''' return list(set(one_list)) def func2(one_list): ''''' 使用
-
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
python列表元素去重后如何保持原来的顺序不变 原列表: list1 = [1,2,1,4,9,3,5,2,6,7,3,1,6,8,4,0] 去重,使用集合set来去重: list2 = list(set(list1) set去重得到的list2默认按升序进行排序: list2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 使list2按照list1元素出现的顺序进行排序(也就是原来的顺序): list2.sort(key = list1.index) 此时,list2 =
-
浅谈python中字典append 到list 后值的改变问题
看一个例子 d={'test':1} d_test=d d_test['test']=2 print d 如果你在命令行实践的话,会发现你改动的是d_test ,但是d 也跟着改变了. 通常这和我们期待的不一样. Why? 因为字典d 是一个object ,而d_test=d并没有真正的将该字典在内存中再次创建.只是指向了相同的object.这也是python 提高性能,优化内存的考虑. 实际场景 d={"name":""} l=[] for i in xrange
-
浅谈python已知元素,获取元素索引(numpy,pandas)
目前搜索到的方法有: np.where('元素') 还有就是pandas的方法: df.index('元素') 但是第二个方法的问题就是会报错,嗯,这就比较尴尬了,查询了网上的解决方案,有这样的: 此外使用 df[df['列名'].isin([相应的值])] 这个命令会输出等于该值的行. 此外如果想快速找到dataframe最后几行的话,可以使用的方法是tail,可以获取若干行的值 以上这篇浅谈python已知元素,获取元素索引(numpy,pandas)就是小编分享给大家的全部内容了,希望能给
-
浅谈python输出列表元素的所有排列形式
例如: ['a', 'b', 'c'] 输出 ['a', 'b', 'c'] ['a', 'c', 'b'] ['b', 'a', 'c'] ['b', 'c', 'a'] ['c', 'a', 'b'] ['c', 'b', 'a'] 方法一:利用递归的方式实现 def permutation(li): len_list = len(li) if len_list == 1: return li result = [] for i in range(len_list): res_list =
-
浅谈python中的数字类型与处理工具
python中的数字类型工具 python中为更高级的工作提供很多高级数字编程支持和对象,其中数字类型的完整工具包括: 1.整数与浮点型, 2.复数, 3.固定精度十进制数, 4.有理分数, 5.集合, 6.布尔类型 7.无穷的整数精度 8.各种数字内置函数及模块. 基本数字类型 python中提供了两种基本类型:整数(正整数金额负整数)和浮点数(注:带有小数部分的数字),其中python中我们可以使用多种进制的整数.并且整数可以用有无穷精度. 整数的表现形式以十进制数字字符串写法出现,浮点数带
-
浅谈Python 集合(set)类型的操作——并交差
阅读目录 •介绍 •基本操作 •函数操作 介绍 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并.交.差.对称差等. sets 支持 x in set. len(set).和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作. 基本操作 >>> x = set("jihite")
-
浅谈python中统计计数的几种方法和Counter详解
1) 使用字典dict() 循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1. lists = ['a','a','b',5,6,7,5] count_dict = dict() for item in lists: if item in count_dict: count_dict[item] += 1 else: count_dict[item] = 1 2) 使用defaultdict() defaultdi
-
浅谈Python数据类型之间的转换
Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) 将对象 x 转换为表达式字符串 eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s) 将序列 s 转换为一个元组 list(s) 将序列 s 转换为一个
-
浅谈Python 对象内存占用
一切皆是对象 在 Python 一切皆是对象,包括所有类型的常量与变量,整型,布尔型,甚至函数. 参见stackoverflow上的一个问题 Is everything an object in python like ruby 代码中即可以验证: # everythin in python is object def fuction(): return print isinstance(True, object) print isinstance(0, object) print isinst
-
浅谈python新手中常见的疑惑及解答
1 lambda函数 函数格式是lambda keys:express 匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值.所以不用return,也没有函数名,经常用在需要key参数的函数中,比如sorted. 2 元组(),它是以逗号辨别的,而不是小括号.比如一个元素的元组新手经常写成(12),其实他会被解释成单个元素12.正确的写法应该是(12,),在元素后面加上逗号. 3 模块导入.比如 import random print random.choice(range
随机推荐
- 日常收集整理的Git常用命令
- Javascript Math ceil()、floor()、round()三个函数的区别
- 详解从Vue.js源码看异步更新DOM策略及nextTick
- Java8中的lambda表达式入门教程
- Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
- 基于php在各种web服务器的运行模式详解
- ASP.NET WebForm中<%=%>与<%#%>的区别
- asp下如何在Access数据库中立即得到所插入记录的自动编号?
- mysql alter语句用法实例
- 深入解析C++编程中的运算符重载
- sql server中datetime字段去除时间代码收藏
- Win2000/XP下的SFC使用参数
- nginx日常维护常用命令
- Nginx worker_connections配置太低导致500错误案例
- Nginx服务器下配置个性二级域名及多个域名的实例讲解
- C++代码规范之命名规则
- react-navigation 如何判断用户是否登录跳转到登录页的方法
- CentOS 6.10源码编译及使用ansible编译安装httpd2.4.39
- python字符串和常用数据结构知识总结
- Oracle 闪回 找回数据的实现方法