Python_list 去重

作者:Gakki

01. 使用内置 set 方法去重

  • set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等
  • sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
    • list.sort(cmp=None, key=None, reverse=False)
    • cmp:可选参数, 如果指定了该参数会使用该参数的方法进行排序。
    • key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
    • 该方法没有返回值,但是会对列表的对象进行排序。
test_data =  [1, 2, 3, 4, 3, 5, 2, 2]
class ListReverse:
    """
    列表去重,并按照原来的顺序排序
    """
    # 利用 set 方法去重
    def duplicate_1(self, data):
        new_data = list(set(data))
        # 利用 sort() 方法进行排序
        new_data.sort(key=data.index)
        return new_data
if __name__ == '__main__':
    test = ListReverse()
    print(test.duplicate_1(test_data))
  • 输出结果:
[1, 2, 3, 4, 5]

02. 使用常规方法去重

old_list = [1, 2, 3, 4, 3, 5, 2, 2]
new_list = []
for value in old_list:
    if value not in new_list:
        new_list.append(value)
print(new_list)
  • 输出结果:
[1, 2, 3, 4, 5]

03. 使用列表推导式去重

old_list = [1, 2, 3, 4, 3, 5, 2, 2]
new_list = []
[new_list.append(i) for i in old_list if i not in new_list]
print(new_list)
  • 输出结果:
[1, 2, 3, 4, 5]

你可能感兴趣的:(Python_list 去重)