练习四十六:列表排序,删除list中重复的元素
Posted pinpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习四十六:列表排序,删除list中重复的元素相关的知识,希望对你有一定的参考价值。
方法一:使用集合set;将list直接转换为set
1 a = [1,3,4,3,5,7] 2 a = list(set(a)) 3 print(a)
执行结果:
[1, 3, 4, 5, 7]
方法二:直接排序,然后逐个比较,鉴于del会直接把元素删除,设置个flag数组来编辑该删除的元素(这个思路是看人家这么写的,有点麻烦,但是也是可以实现的,设置了标志位)1 namelist = [‘Marry‘,‘Andy‘,‘Carol‘,‘Jack‘,‘Marry‘,‘Hanmeimei‘,‘Andy‘] 2 namelist.sort() 3 flag = [] 4 for i in range(len(namelist)): 5 flag.append(0) 6 for x in range(len(namelist)): 7 for y in range(x+1,len(namelist)): 8 if namelist[x] == namelist[y]: 9 flag[y] = 1 10 break 11 for k in range(len(flag)-1,0,-1): 12 if flag[k] == 1: 13 del namelist[k] 14 print(flag) 15 print(namelist)
执行结果:
[0, 1, 0, 0, 0, 0, 1] [‘Andy‘, ‘Carol‘, ‘Hanmeimei‘, ‘Jack‘, ‘Marry‘]
以上是关于练习四十六:列表排序,删除list中重复的元素的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(python):链表类:第82题:删除排序链表中的重复元素 II:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
Python练习题4(列表去重):[5,3,4,'ok',4,3,'abc',8,52,'ok']去除列表中重复内容 方法一:使用set 方法二:不使用