Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45935
  • 博文数量: 13
  • 博客积分: 570
  • 博客等级: 中士
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-21 09:23
文章分类

全部博文(13)

文章存档

2010年(7)

2009年(4)

2008年(2)

我的朋友

分类: LINUX

2010-03-01 00:06:00

列表解析
提供了一种紧凑的方式,实现了通过对列表中每一个元素应用一个函数的方法来将一个列表映射到另一个列表.


>>> a_list = [1, 2, 3, 4]
>>> a_list
[1, 2, 3, 4]
>>> b_list = [i+1 for i in a_list]
>>> b_list
[2, 3, 4, 5]


a_list是要映射的列表,python解释器逐个访问a_list中的元素,然后讲元素值临时赋值给i,然后python对元素应用函数i+1,并且将结果添加到返回列表b_list中。

列表解析可以过滤列表

>>> c_list = [i+1 for i in a_list if i % 2]
>>> c_list
[2, 4]

加上过滤以后,当表达式返回True时,那么这个元素将会包含在输出中

列表解析还可以做更复杂的事情

>>> d_list = [(i+1, i*2) for i in a_list]
>>> d_list
[(2, 2), (3, 4), (4, 6), (5, 8)]

当然,这里面你也可以用字典,列表
阅读(498) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~