练习四十六:列表排序,删除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']

转载于:https://www.cnblogs.com/pinpin/p/10140163.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值