首页 > 其他 > 详细

列表去重的几种方法

时间:2019-02-21 14:55:36      阅读:119      评论:0      收藏:0      [点我收藏+]
‘‘‘1. set去重‘‘‘
a=[1,1,1,2,3,3,4,5,6,6,6]
a1=list(set(a))
print(a1)


‘‘‘2.用itertools模块‘‘‘
import itertools

a = [1,1,1,1,2,3,43,5]
a1=[]
for i in itertools.groupby(a):
a1.append(i)

print(a1)

‘‘‘groupby()把迭代器中相邻的重复元素挑出来放在一起:‘‘‘
for key,group in itertools.groupby(‘AAABBBCCAAA‘):
print(key,list(group))

‘‘‘3.常规方法去重‘‘‘
a = [1,1,1,2,3,3,4,5,6,6,6]
a1 = []
for i in a:
if i not in a1:
a1.append(i)
else:
continue
print(a1)

a = [1,1,1,1,1,2,3,3,4,5,6]
for i in a:
while a.count(i)>1:
del a[a.index(i)]
print(a)

# 如果要删除列表列表中的重复项,用下面的几种方法来处理
# 方法一
a=[1,1,1,2,3,3,4,5,6,6,6]
# count计算出现的次数
l1=[i for i in a if a.count(i)==1]
print(l1)
# 方法二
data = [2, 1, 3, 4, 1]
data1=list(filter(lambda x:data.count(x) == 1, data))
print(data1)

‘‘‘4.使用字典中fromkeys()的方法来去重‘‘‘
list1 = [2, 1, 3, 4, 1]
list2 = list({}.fromkeys(list1).keys())
print(list2)

‘‘‘5. 使用sort函数来去重‘‘‘
list1 = [2, 1, 3, 4, 1]
list2=list(set(list1))
list2.sort(key=list1.index)
print(list2)

‘‘‘6. 使用sorted函数来去重‘‘‘
lst1 = [2, 1, 3, 4, 1]
lst2 = sorted(set(lst1), key=lst1.index)
print(lst2)


"""
要求将这个重复元素进行去重(重复是指嵌套的列表内两个元素都相同),
并且保证元素顺序不变,输出还是嵌套列表,
结果应该长这样:[["百度", "CPY"], ["京东", "CPY"], ["黄轩", "PN"]]
"""
raw_list = [["百度", "CPY"], ["京东", "CPY"], ["黄轩", "PN"], ["百度", "CPY"]]
s=set(tuple(x) for x in raw_list)
new_list=[list(t) for t in s]
new_list.sort(key=raw_list.index)
print(new_list)

列表去重的几种方法

原文:https://www.cnblogs.com/simplela/p/10412510.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!