最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

三种方法删除列表中重复的元素及效率分析

来源:动视网 责编:小采 时间:2020-11-27 14:28:09
文档

三种方法删除列表中重复的元素及效率分析

三种方法删除列表中重复的元素及效率分析:方法一:使用列表对象的sort()方法对列表进行排序,从最后一个元素开始循环迭代列表,判断相邻的两元素是否是否相等!def methodOne(list): list.sort() lenList = len(list) lastItem = list[lenList-1] for i in range(l
推荐度:
导读三种方法删除列表中重复的元素及效率分析:方法一:使用列表对象的sort()方法对列表进行排序,从最后一个元素开始循环迭代列表,判断相邻的两元素是否是否相等!def methodOne(list): list.sort() lenList = len(list) lastItem = list[lenList-1] for i in range(l


方法一:

使用列表对象的sort()方法对列表进行排序,从最后一个元素开始循环迭代列表,判断相邻的两元素是否是否相等!

def methodOne(list):
 list.sort()
 lenList = len(list)
 lastItem = list[lenList-1]
 for i in range(lenList-2,-1,-1):
 if list[i] == lastItem:
 list.remove(list[i])
 else:
 lastItem = list[i]
 return list

方法二:

定义一个临时列表,循环迭代出的元素如果不在临时表中,则加入,最后返回临时列表!

def methodTwo(list):
 tempList = []
 for i in list:
 if not i in tempList:
 tempList.append(i)
 return tempList

方法三:

lists=[20,12,34,12,24,34,55,27]
print list(set(lists))

1、方法一相对方法二来说,有更多的额外操作如:排序、赋值。因为在Python中,变量是不可变的,每迭代出一个元素比较不相等后的操作是都是新建立一个局部变量并赋值而丢弃原变量,这需要消耗更多的内存!同时因为排序操作,破坏了相对位置。

2、方法二建立一个临时列表进行操作,而列表是可变的,每次追加元素都只是在原列表上增加一个索引及值,因而相对方法一来说效率会更高!

3、第三个方法无疑是这三种方法中效率最好的(无论是代码的简洁还是运行效率):set()是内置的数据类型“集合类型”,它是无序的且值是唯一项的!所以set() 执行的结果就是转为集合且直接去除了重复的元素,再list()则将集合又转回列表类型。

但是,set()是会破坏了排列顺序,如果要保留排序,list(set(lists)) 可改为 sorted(set(lists),key=lists.index)

文档

三种方法删除列表中重复的元素及效率分析

三种方法删除列表中重复的元素及效率分析:方法一:使用列表对象的sort()方法对列表进行排序,从最后一个元素开始循环迭代列表,判断相邻的两元素是否是否相等!def methodOne(list): list.sort() lenList = len(list) lastItem = list[lenList-1] for i in range(l
推荐度:
标签: 方法 效率 元素
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top