Python 列表解析

学了其他语言,对Python的列表解析之类的,没怎么用过。。总是习惯性的用for循环。后来看到大家都用列表解析,效率比直接for循环高一下。于是就在网上查了查资料。

其实并不难, 只是想不想的起来用---- 

先看一个基本的例子

a = [x+2 for x in range(10)]
print a
#
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]##输出的结果:

然后分析工作过程(在网上查找的资料):

列表解析:在解释器中以c语言的速度来运行,比python的for循环代码在pvm中运行要快的多。
依次把列表里的内容取出来,赋值给最左边的x,然后执行x+2的操作,
并且把执行好的结果保存在列表里。等range(10)迭代完以后就新生成了一个列表,结果就是[2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
同时,这也是建立python 列表的一个方法,但是效率要快。

同时在列表解析中可以加入运算:

 [(x,y) for x in range(5) if x % 2==0 for y in range(5) if y % 2 ==1]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
嵌套列表:

>>> rect
[[1, 2, 3], [3, 4, 5]]
>>> [row[1] for row in rect]            #访问指定列中的元数
[2, 4]
>>> rect[1]                             #访问指定行的元素
[3, 4, 5]
>>> [rect[row][1] for row in range(2)]  #访问指定位置元数
[2, 4]


同时在与lambda表达式一块运用很方便,下次再说吧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值