列表去重python

方法1:

array = [1,2,3,2,1,1,2,2,3,3,443,5]
array_set = []
for i in array:
    if i not in array_set:
        array_set.append(i)
print(array_set)

思路比较简单,直接新建一个列表,将未出现过的元素依次添加进去即可。该方法可以保持原列表元素的顺序

方法2:通过set方法进行处理

array = [1,2,3,2,1,1,2,2,3,3,443,5]
array_set = list(set(array))

但是该方法存在一个问题,如果原列表中的元素是list的话是不能实现去重的目的的

该方法使用起来比较简单,但是结果没有保持原列表的顺序

方法3:使用lambda匿名函数和reduce函数处理

from functools import reduce
array = [1,2,3,2,1,1,2,2,3,3,443,5]
func = lambda x,y:x if y in x else x+[y]
reduce(func,[[],]+array)

方法4:使用itertools模块

array = [1,2,3,2,1,1,2,2,3,3,443,5]
import itertools
array.sort()
array_ = itertools.groupby(array)
array_set = []
for k,j in array_:
    array_set.append(k)

方法5:while遍历去重

def delRepeat(array):
    for i in array:
        while array.count(i)>1:
            del array[array.index(i)]
    return array

delRepeat([1,2,3,2,1,1,2,2,3,3,443,5])

猜你喜欢

转载自blog.csdn.net/weixin_38332967/article/details/81701746
今日推荐