python实现不使用额外空间去除重复元素

xiaoxiao2021-02-28  71

    题目之前做过,但是使用就是python自带的方法,借助了额外的空间,这里给出来几种方法,下面是具体的实现:

#!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:不使用额外空间去除重复元素 ''' def remove_repeat_simple1(num_list): ''' python内置方法,使用额外空间 ''' return list(set(num_list)) def remove_repeat_simple2(num_list): ''' 列表解析式方法,使用额外空间 ''' tmp_list=[] tmp_list=[one for one in num_list if one not in tmp_list] return list(set(num_list)) def remove_repeat(num_list): ''' 不使用额外空间 ''' i=0 while i<len(num_list)-1: if num_list[i+1]!=num_list[i]: i+=1 else: num_list.pop(i+1) #下面的语句与上面的等价 #num_list=num_list[:i+1]+num_list[i+2:] return num_list if __name__ == '__main__': num_list=[1,2,3,4,4,4,5,5,6,7,8,8,9,0,0] print remove_repeat_simple1(num_list) print remove_repeat_simple2(num_list) print remove_repeat(num_list)

结果如下:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] [Finished in 0.3s]

转载请注明原文地址: https://www.6miu.com/read-43056.html

最新回复(0)