Chinaunix首页 | 论坛 | 博客
  • 博客访问: 113040
  • 博文数量: 15
  • 博客积分: 152
  • 博客等级: 入伍新兵
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-29 17:10
文章分类

全部博文(15)

文章存档

2017年(1)

2015年(1)

2013年(8)

2012年(5)

分类: Python/Ruby

2012-08-16 20:40:33

按照入门教程中的作法,删除相同元素,一般用集合set,但是只能针对列表的元素能hashable的情况下才能使用这种方法。
其实可以使用这样的代码来删除重复元素,也很精简。
代码如下所示:

点击(此处)折叠或打开

  1. >>> a = [['a', 'b', 'c'],['d', 'e', 'f'],['g', 'h', 'i'],['a', 'b', 'c']]
  2. >>> a = [a[i] for i in range(len(a)) if a[i] not in a[:i]]
  3. >>> a
  4. [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
  5. >>>
备忘
使用a[-1::-1]可以得到一个a列表倒序的列表复本,而使用reversed(a)得到的是一个倒序的迭代器。
此外,reversed('abc')得到的是一个迭代器,而‘abc'[-1::-1]得到的是一个倒序的字符串'cba'。

此外在循环的过程中最好不要对迭代器进行操作,如果必须对迭代器进行操作,可以用a.copy(),;a[:]做为迭代器。


阅读(2162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~