昨天跟大家一起学习了 Python基本数据类型之Dictionary,没学的兄弟姐妹们看这里零基础学Python,至此,我们已经学完了Python所有的基本数据类型,今天让我们开始学习Python推导式吧。
需注意的是,【零基础学Python】此系列都使用Python3。


Python推导式是Python特有的数据处理方法,可以简便的将一个数据序列转换成新的数据序列。

列表推导式

[表达式 for 变量 in 原列表]
[out_exp_res for out_exp in input_list]
或
[表达式 for 变量 in 原列表 if 条件]
[out_exp_res for out_exp in input_list if condition]
或
[结果1 if 条件 else 结果2 for 变量 in 原列表]

比如过滤掉长度大于2的字符串,生成新的列表

>>> jimeng = ['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙']
>>> print(jimeng)
['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙']
>>> new_list = [name for name in jimeng if len(name)<=2]
>>> print(new_list)
['黑嘴', '黑豆']
# 将长度小于2的字符串改为字符长度
>>> new_list = [name if len(name)>2 else len(name) for name in jimeng]
>>> print(new_list)
[2, '张开朗', '张一蛋', 2, '帅帅龙']

计算116以内可以被9整除的数

>>> nums = [i for i in range(116) if i%9 == 0]
>>> print(nums)
[0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108]

字典推导式

定义与列表推导式类似

{ key_expr: value_expr for value in collection }或{ key_expr: value_expr for value in collection if condition }

下面演示列表转字典

>>> jimeng = ['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙']
>>> print(jimeng)
['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙']
>>> new_dict = {name:len(name) for name in jimeng}
>>> print(new_dict)
{'黑嘴': 2, '张开朗': 3, '张一蛋': 3, '黑豆': 2, '帅帅龙': 3}

集合推导式

定义与字典推导式类似,不加value即可

{ expression for item in Sequence }
或
{ expression for item in Sequence if conditional }

列表转集合,并*2,会去重重复

>>> jimeng = ['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙', '黑嘴']
>>> print(jimeng)
['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙', '黑嘴']
>>> new_set = {name*2 for name in jimeng}
>>> print(new_set)
{'帅帅龙帅帅龙', '黑豆黑豆', '张一蛋张一蛋', '张开朗张开朗', '黑嘴黑嘴'}

元组推导式

定义与列表类似,中括号改为小括号()

>>> jimeng = ['黑嘴', '张开朗', '张一蛋', '黑豆', '帅帅龙', '黑嘴']
>>> new_tuple = (name for name in jimeng if len(name)<3)
>>> print(new_tuple)
<generator object <genexpr> at 0x0000018B7BB0ED60>
# 需使用tuple()函数,将生成器对象转为元组
>>> print(tuple(new_tuple))
('黑嘴', '黑豆', '黑嘴')

元组非常简单易用,兄弟姐妹们学废了吗

【零基础学Python】Day9 Python推导式相关推荐

  1. python编程需要安装什么软件_[零基础学pythyon]安装python编程环境

    注:推荐一种非常重要的学习方法 在我这里看文章的零基础朋友,乃至于非零基础的朋友,不要希望在这里学到很多高深的python语言技巧. "靠,那看你胡扯吗?" 非也.重要的是学会一些 ...

  2. 零基础学Python--------第2章 Python语言基础

    第2章  Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...

  3. [转载] 【零基础学爬虫】python中的yield详解

    参考链接: 什么时候在Python中使用yield而不是return python中的yield功能比较强大,什么意思呢?如果一个函数f内使用了yield关键词,那么该函数就可以这样使用: for i ...

  4. python自学需要哪些基础知识-零基础学Python应该学习哪些入门知识及学习步骤安排...

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python岗位人才缺口高达4 ...

  5. 零基础学python需要多久-零基础学python大概要多久

    Python是目前公认的全球5大流行语言之一,从云计算.大数据到人工智能,Python无处不在,同时Python被誉为神奇的"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使 ...

  6. 零基础学python需要多久-零基础学Python要多久

    原标题:零基础学Python要多久 这几年Python逐渐被越来越多的人熟知,无论是因为工作还是兴趣,很多人都想学习Python.大部分的人都是零基础学习,自然免不了会问零基础学Python要多久这样 ...

  7. python自学步骤-零基础学Python应该学习哪些入门知识及学习步骤安排

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python岗位人才缺口高达4 ...

  8. 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间

    求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...

  9. 零基础学python全彩版实战答案-零基础学Python(全彩版)

    商品描述: 本店出售的图书均是正版二手书,有一些笔记划线,基本是六-九品新左右,基本都没有光盘.介意者请提前咨询客服.本店所有书籍,因买家导致退货退款的,发出运费参照不包邮运费模板由买家承担.如果签收 ...

  10. python培训一般多久_零基础学python需要多久

    一:明确自己的学习目标.不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣. 二:基础的Pytho ...

最新文章

  1. golang-exec cmd data race
  2. Java中static的作用
  3. 关于unityengine.dll, unityengine.coremodule.dll
  4. Qt模型、视图解读之视图
  5. windows server 2008 开机进度条闪过后重启_Windows无法启动:先用PE把桌面重要数据拷出来再说其他...
  6. 类与类之间关系,用C#和JavaScript体现
  7. 写给即将离开校园准备进入 SAP 研究院实习的朋友
  8. ORACLE AUDIT 审计
  9. 【SDOI2013】项链【莫比乌斯反演】【Polya定理】【递推式求通项】【数论】
  10. oracle数据库的拼接字符串,Oracle数据库拼接字符串
  11. Android 11 无法调起微信支付解决方案
  12. rvest | 网络爬虫初步——使用CSS选择器
  13. 按层次遍历二叉树_LeetCode | 102.二叉树的层次遍历
  14. 第十二届蓝桥杯 杨辉三角形 Python题解 满分
  15. Source Map的概念
  16. 兼容chrome、firebox、IE阻止冒泡问题
  17. 论文阅读训练(13)
  18. 2021年中国大学生程序设计竞赛女生专场 gym103389F 地图压缩
  19. Android画个颜色渐变的圆环玩玩
  20. GitHub的使用-----转载自PHP中文网

热门文章

  1. 电脑键盘及excel快捷键
  2. redhat linux系统下查看Emulex HBA卡基本命令
  3. 大量数据表的优化方案
  4. 用众城计算机弹学猫叫,19年真男神当众被逼学猫叫?谁能把我的童年还给我!...
  5. php中round(),PHP round( )用法及代码示例
  6. 房东房源管理小程序开发功能
  7. css 实现一个尖角_纯CSS实现页面的尖角、小三角、不同方向尖角的方法小结
  8. fastapi+tortoise-orm测试
  9. Ubuntu16.04关机后自动重启解决方案
  10. OpenGL第三方库:GLAD入门篇