码迷,mamicode.com
首页 > 编程语言 > 详细

Python列表去重

时间:2015-08-05 21:53:43      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

  标题有语病,其实是这样的:

  假设有两个列表 : L1 = [1,2,3,4] ; L2 = [1,2,5,6] 然后去掉L1中包含的L2的元素

  直接这样当然是不行的:

def removeExists(L1, L2):
  for e1 in L1:
    if e1 in L2:
      L1.remove(e1)

 不管什么语言都不能这么干,但是又有一点不同,它不报错而且还能往下走,只不过结果不合预期。

  结果是这样的,因为L1中的1移除后,迭代器索引指向了第二个元素,但是现在第二个元素是3了,所以L1的结果会是[2,3,4],如果L1原本是[1,2,4,5],结果就是[2,4],这个挺有意思。。。

  解决方法倒是无所谓,顺手贴一下:

def removeExists(L1, L2):
  L1T = L1[:]
  for e1 in L1T:
    if e1 in L2:
      L1.remove(e1)

 

Python列表去重

标签:

原文地址:http://www.cnblogs.com/saaav/p/4705799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!