首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >列表递推式

列表递推式

作者头像
周辰晨
发布2020-02-19 10:27:46
4800
发布2020-02-19 10:27:46
举报

前言

我们平时通常是通过 []list()函数来定义一个列表,本篇将会介绍一种全新的列表定义方式,它借助for循环来快速的定义列表。

列表递推式

先举个例子:有个列表[1,2,3],我们要将他中的每个元素加1,组成另一个列表,常见做法如下:

>>> a = [1,2,3]
>>> b = []
>>> for i in a:
...     b.append(i+1)
...
>>> b
[2, 3, 4]

我们用列表递推式用一行代码能起到同样的效果。^_^

>>> c = [i+1 for i in a]
>>> c
[2, 3, 4]

[i+1 for i in a] 就一行代码起到了同样的作用。列表推导式能极大的简化代码,但是会增加可读性难度。其基本格式如下:

 variable = [out_exp_res for out_exp in input_list if out_exp == 2]
  out_exp_res:  列表生成元素表达式,可以是有返回值的函数。
  for out_exp in input_list:  迭代input_list将out_exp传入out_exp_res表达式中。
  if out_exp == 2:  根据条件过滤哪些值可以。

如上面的例子,要排除偶数,只对奇数操作,那么可以这样:

>>> d  = [i+1 for i in a if i % 2 > 0]
>>> d
[2, 4]

如果对每个元素要进行的操作很复杂,那么可以传入一个函数,示例如下:

>>> def fun(i):
        return i*2

>>> e = [fun(i) for i in a if i % 2 > 0]
>>> e
[2, 6]

有了列表推导式,那么有没有字典推导式,集合推导式呢?大家有兴趣可以自己尝试下

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师影响力 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 列表递推式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档