Python中列表去重的方法和sort中key的含义

发布时间:2024-11-30 11:19

Python基础语法:变量定义和数据类型 #生活知识# #编程教程#

列表去重这样是在面试中经常会问到的题目。下面先讲最直观的,也算比较简单的方法

第一种:直观方法

mylist=[5,6,4,1,'h','a','f','a',2,4,2,1]

mylist2=[]

for i in mylist:

if i not in mylist2:

mylist2.append(i)

print(mylist2)

'

这是python中最基础也是最直观的方法,很容易理解。

第二种:利用set去重

首先要理解set是什么,set是集合,这里利用了集合不重复的特点

mylist=[5,6,4,1,'h','a','f','a',2,4,2,1]

li =list(set(mylist))

print(li)

'

虽然很简单就可是实现去重的的效果,但是结果和我们想象的不一样,因为集合是无序的,会打乱原先列表的顺序,当然这是有解决办法的,我们只需要加一行代码就可以了,下面是完整版:

mylist=[5,6,4,1,'h','a','f','a',2,4,2,1]

li =list(set(mylist))

li.sort(key=mylist.index)

print(li)

'

这里面就涉及到了sort()的两个可选参数,key和reverse,我们主要讲一下key的用法。key=mylist.index表示按照mylist列表中的数值对应的下标进行排序,也就是按照原先的顺序排序,而reverse是后面跟false或者ture代表升序和降序,默认是升序。

还有一种比较复杂比较难理解的一种:

mylist=[5,5,6,4,1,'h','a','f','a',2,4,2,1]

mylist2=[]

i =0

while i<len(mylist):

print(mylist.index(mylist[i]))

if mylist.index(mylist[i])==i:

mylist2.append(mylist[i])

i +=1

print(mylist2)

'

这种通过判断查找一个数的第一出现的坐标与i是否相等,如果相等存入到新列表中,如果不相等则跳过,这个比较复杂,了解一下就好,这个类似JavaScript中的数组去重。



网址:Python中列表去重的方法和sort中key的含义 https://www.yuejiaxmz.com/news/view/323133

相关内容

(Python)组合数据:Python中的列表、元组、集合
python 列表转为字典的两个小方法
Python列表嵌套字典转化问题
python遍历并打印1到100
matlab语言中的[~,b]=sort(A)用法介绍
python中一些提升工作效率的小技巧
python中缓存模块的一些用法
Python笔记——Python中is和==的区别
Python自学2(列表)
运筹学中的节约里程法及其python实现

随便看看