python列表去重

1、方法一

        嗯,这个是简单的逻辑不多赘述。

lst = [1,2,6,1,3,2]
lst1 = []
for i in lst:
    if i not in lst1:
        lst1.append(i)
print(lst1)

2、方法二

        利用集合没有重复元素的特点进行去重。set()可以将字符串、列表、元组甚至字典(与前面几种类型略有不同)转换为集合,、并且得到的集合是无序的,每一次打印都有得到不同顺序的结果。

lst = [1,2,6,1,3,2]
lst1 = list(set(lst))
print(lst1)

        但是有时候我们需要让得到的list1的顺序按照lst来排,我们可以利用sort()函数。sort()函数有俩个参数key、reverse。reverse决定了升序(默认升序)还是降序(reverse=True);key指定了一个函数。这样解释key太抽象了,写个例子演示一下:

python列表去重_第1张图片

         fun函数返回的是列表的第二个元素,lst传入sort()的是[1,3],[4,2],[9,5],[1,-1],他们的第二个元素依次是3,2,5,-1,按升序排列即-1,2,3,5所以得到上面的结果。lst1同理就不多赘述。

所以利用set集合去重又不打乱顺序只需要:

lst = [1,2,6,1,3,2]
lst1 = list(set(lst))
lst1.sort(key = lst.index)
print(lst1)

        index函数可以返回值所对应的下标(如果有相同的值,没有任何限制的情况下返回第一个值的下标),所以把得到的lst1按原来索引排序就好。

你可能感兴趣的:(python,python)