‘‘‘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