Python list中去重的多种方法

Python list中去重的多种方法,第1张

概述去重之后顺序会改变set去重(列表去重会让列表改变原来的顺序)l1=[1,4,4,2,3,4,5,6,1]l2=list(set(l1))print(l2)#[1,2,3,4,5,6]但是,可以通过列表中索引(index)的方法保证去重后的顺序不变。l1=[1,4,4,2,3,4,5,6,1]l2=list(set(l1))l2.sort(key=l1.i

去重之后顺序会改变

@H_502_6@set去重 (列表去重会让列表改变原来的顺序)
l1 = [1,4,4,2,3,4,5,6,1]l2 = List(set(l1))print(l2)    # [1, 2, 3, 4, 5, 6]

但是,可以通过列表中索引(index)的方法保证去重后的顺序不变。

l1 = [1,4,4,2,3,4,5,6,1]l2 = List(set(l1))l2.sort(key=l1.index)print(l2)      # [1, 4, 2, 3, 5, 6]itertools.groupby
@H_502_6@itertools.groupby
import itertoolsl1 = [1,4,4,2,3,4,5,6,1]l1.sort()l = []it = itertools.groupby(l1)for k,g in it:    l.append(k)print(l)      # [1, 2, 3, 4, 5, 6]
@H_502_6@fromkeys
l1 = [1,4,4,2,3,4,5,6,1]t = List({}.fromkeys(l1).keys())# 解决顺序问题t.sort(key=l1.index)print(t)         # [1, 4, 2, 3, 5, 6]
@H_502_6@通过删除索引
l1 = [1,4,4,2,3,4,5,6,1]t = l1[:]for i in l1:    while t.count(i) >1:          del t[t.index(i)]# 解决顺序问题t.sort(key=l1.index)print(t)    # [1, 4, 2, 3, 5, 6]

去重不改变顺序

@H_502_6@建立新列表[]
l1 = [1,4,4,2,3,4,5,6,1]new_l1 = []for i in l1:    if i not in new_l1:        new_l1.append(i)print(new_l1)    # [1, 4, 2, 3, 5, 6]
@H_502_6@reduce方法
from functools import reducel1 = [1,4,4,2,3,4,5,6,1]func = lambda x,y:x if y in x else x + [y]print(reduce(func,[[],]+l1))   # [1, 4, 2, 3, 5, 6]

 

总结

以上是内存溢出为你收集整理的Python list中去重的多种方法全部内容,希望文章能够帮你解决Python list中去重的多种方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存