直接遍历列表删除
1 2 3 4 5 6 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
for el in l1:
if l1.count(el) > 1 :
l1.remove(el)
print (l1)
|
通过遍历索引删除
1 2 3 4 5 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
for el in range ( len (l1)):
if l1.count(l1[el]) > 1 :
l1.remove(l1[el])
print (l1)
|
通过遍历创建的切片来删除原列表
1 2 3 4 5 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
for el in l1[:]:
if l1.count(el) > 1 :
l1.remove(el)
print (l1)
|
用新列表记录需要保留的元素
1 2 3 4 5 6 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
lst = []
for el in l1:
if lst.count(el) < 1 :
lst.append(el)
print (lst)
|
通过索引倒着删除
1 2 3 4 5 6 7 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
for el in range ( len (l1) - 1 , - 1 , - 1 ):
if l1.count(l1[el]) > 1 :
l1.pop(el)
print (l1)
|
通过递归函数删除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
def set_lst(lst):
for el in lst:
if lst.count(el) > 1 :
lst.remove(el)
set_lst(lst)
else :
return lst
print (set_lst(l1))
|
毫无疑问set()是最方便的
1 2 3 | l1 = [ 1 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 6 , 6 , 5 , 5 , 2 , 2 ]
lst = list ( set (l1))
print (lst)
|
以上就是Python怎么删除列表中重复元素的详细内容
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。