Python 第五节 第七课

举报
我是小白呀iamarookie 发表于 2021/09/10 22:53:29 2021/09/10
【摘要】 [toc] 推导式创建序列 推导式是从一个或多个迭代器快速创建序列的一种方法. 它可以将循环和条件判断结合. 从而避免冗长的代码. 推导式是金典的Python 风格,会使用它代表你以超过 Python 初学者的水平. 列表推导式 列表推导式生成列表对象, 语法如下:     [表达式 for item in...

[toc]

推导式创建序列

推导式是从一个或多个迭代器快速创建序列的一种方法. 它可以将循环和条件判断结合. 从而避免冗长的代码. 推导式是金典的Python 风格,会使用它代表你以超过 Python 初学者的水平.

列表推导式

列表推导式生成列表对象, 语法如下:

    [表达式 for item in 可迭代对象]

    或者: {表达式  for item in 可迭代对象 if 条件判断}

>>> [x for x in range(1,5)]

[1,  2, 3, 4]

>>>[x*2 for x in range(1,5)]

[10, 20, 30]

>>> [x*2 for x in range (1,20) if x%5 == 0]

[10, 20, 30]

>>>[a for a in "abcdefg"]

["a", "b", "c", "d", "e", "f", "g"]

>>> cells = [(row,col) for row in range(1,10) for col in range(1,10)]    #可以使用两个循环

>>> for cell  in cells

    print(cell)

字典推导式

字典推导式生成字典对象, 格式如下:

    {key_expression : value_expression for 表达式 in 可迭代对象}

类似于列表推导式, 字典推导式可以增加 if 条件判断, 多个 for 循环.

统计文本中字符串出现的次数:

集合推导式

集合推导式生成集合, 和列表推导式的语法类似: 

    {表达式 for item in 可迭代对象}

    或者{表达式 for item in 可迭代对象 if 条件判断}

>> {x for x in range(1,100) if x%9 == 0}

{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

生成器推导式 ( 生成元组 )

很多同学肯会问: "都有推导式, 元组有没有?", 能不能用小括号呢?

>>> x for x in range(1,100) if x%9 == 0

<generator object <genexpr> at 0x000001BA01CC5570>

我们发现提示的是 "一个生成器对象". 显然, 元组是没有推导式的.

一个生成器只能运行一次. 第一次迭代可以得到数据, 第二次迭代发现数据已经没有了.

 

 

 

       

 

 

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/108890135

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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