Python 知识点全解析系列之列表推导式(list comprehension)

举报
格图洛书 发表于 2021/11/18 23:18:20 2021/11/18
【摘要】 Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,可以方便的操作list, dict, set等数据结构。有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”。名字听上去很难理解,但是看它的语法就很清晰了。虽然名字叫做 list comprehen...

Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,可以方便的操作list, dict, set等数据结构。有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”。名字听上去很难理解,但是看它的语法就很清晰了。虽然名字叫做 list comprehension,但是这个语法同样适用于dict、set等这一系列可迭代(iterable)数据结构。

语法规范:

out_list = [out_express for out_express in input_list if out_express_condition]

其中的 if 条件判断根据需要可有可无。

下面看一个具体的例子,生成一个包含10以内的偶数的list:


  
  1. In [1]: evens = [i for i in range(10) if i % 2 == 0]
  2. In [2]: evens
  3. Out[2]: [0, 2, 4, 6, 8]

由for循环升级到列表推导式:

在没有了解list comprehension之前,上面那个生成偶数list的通常做法是用for循环:


  
  1. evens = []
  2. for i in range(10):
  3.    if i % 2 == 0:
  4.        evens.append(i)

很明显,for循环占用了4行代码,而 list comprehension 只用了1行代码。

文章开始说到推导式的语法规范时&

文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。

原文链接:wenyusuran.blog.csdn.net/article/details/112601020

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。