python3 列表推导式_Python3 之 列表推导式
列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。
它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。
列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。
下面看一个具体的例子:
实例1:求10以内每个数字的平方值,保存到列表中
以往,我们会用for循环来实现:
1 list1 =[]2 for x in range(10):3 list1.append(x**2)
如果用列表推导式,如下:
1 list1 = [x ** 2 for x in range(10)]
只用一行代码,就搞定。
实例3:复杂的循环嵌套
把一个矩阵(以列表为元素的列表)展平为一个列表。首先,我们用for循环来实现一下:
1 matrix =[2 [1, 2, 3],3 [4, 5, 6],4 [7, 8, 9],5 ]6
7 #方法1:用for循环来处理
8 mylist_1 =[]9 for i inmatrix:10 for j ini:11 mylist_1.append(j)12 print(mylist_1) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
接下来,我们用列表推导式实现:
1 mylist_2 = [j for i in matrix for j ini]2 print(mylist_2) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
还是一行代码就搞定,但一行里面有两个for,看起来很乱,两个for,哪个在前哪个在后呢?只要记住他们的顺序和不用推导式的原始for循环是一致的即可。
列表推导式的可读性:
一行代码搞定几行代码的事情,看上去很简洁,但是读起来很费劲,尤其是当条件语句很长的时候,把这一行代码变得很长,超过了代码规范规定的长度(一般是80个字符),也使得理解代码变得困难。
面对一行长长的代码该如何下口读,如何理解呢?别着急,好在Python允许在中括号、花括号之间断行:
列表推导式断行:
断行前:
1 mylist_2 = [j for i in matrix for j in i]
断行后:
1 mylist_2 =[2 j3 for i inmatrix4 for j ini5 ]
字典(dict)和集合(set)的推导式:
前面我们也提到过,推导式不仅仅适用于列表,它同样使用于字典dict和集合set。
把一个字典的key和value互换:
changed = {value: key for key, value in input_dict.items()}
用一个列表的所有单词的首字母生成一个集合:
chars = {w[0] for w in words_list}
通过以上讲解就可以轻松掌握Python的列表推导式(list comprehension)了,简而言之,就是把普通的多行for循环压缩成一行代码,这种压缩语法适用于列表、字典、集合等可迭代数据结构(iterables)。
python3 列表推导式_Python3 之 列表推导式相关推荐
- python3列表推导式矩阵转置_python3进阶之推导式1之列表(list)推导式(comprehensions)...
1.前言 推导式,英文名字叫comprehensions,注意与comprehension(理解)只有s字母之差.推导式又可以叫解析式,推导式可以从一种数据序列构建新的数据序列的结构体.推导式分为,列 ...
- # 取字典的值_python3的列表、元组、字典的复习和推导式和生成器小结
推荐指数:★★★★ ======================================= python3:列表推导式,生成器表达式,字典推导式 ======================= ...
- python列表解析式如何使用_python列表推导式操作解析
python列表推导式操作解析 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本格式 [表达式 ...
- python列表的实现原理_python列表推导式原理和使用方法
偶尔会在python中看见这样一行代码: data = [x**2 for x in range(0, 5)] # 此时data = [0, 1, 4, 9, 16] 如果不知道背后的语法规则,那么很 ...
- 列表输出循环左移_python 列表推导式(经典代码)(21)
文章首发微信公众号,微信搜索:猿说python 截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率 ...
- 列表解析python_基于Python列表解析(列表推导式)
列表解析--用来动态地创建列表 [expr for iter_var in iterable if cond_expr] 例子一: map(lambda x: x**2, range(6)) [0, ...
- Python推导式comprehension:列表推导式、集合推导式、字典推导式
一.Python中的推导式 推导式comprehension,可以从一个数据序列构建另一个新的数据序列的结构体. 列表推导式 集合推导式 字典推导式 二.列表推导式 作用:用一个表达式创建一个有规律的 ...
- python字典推导式_python的各种推导式(列表推导式、字典推导式、集合推导式)...
推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...
- Python(IT峰)笔记06-数据类型详解:列表,列表的定义,列表的基本运算,列表中的切片,列表中的相关函数,浅拷贝,深拷贝,列表推导式
1.列表的定义 中括号进行定义 list函数定义 使用逗号分割 列表中的元素可以是任意类型,尽管这样很少用 lists=list() lists.append('zhangsan') lists.ap ...
最新文章
- 有关UITabbarController的一些重要属性
- idea自动导入jar包的快捷键
- linux环境下如何查看solr版本,Solr环境搭建(linux)
- 2022年PMP考试模拟题1(含答案解析)
- DOS常用命令(从入门到精通)
- 运输问题(模型建立、表上作业法、产销平衡、产销不平衡)
- Unity获取时间戳
- 北京航空航天计算机考研科目,2020考研北京航空航天大学计算机考研考试科目...
- 每日一记—Android动态申请多个权限
- 国家代码查询(Country codes)
- 如何用微信公众号快速注册小程序
- 解决MacBookPro git push提示You hasn‘t joined this enterprise
- AutoJs学习-QQ\微信自定义小尾巴
- 东邪西毒新编 (转)
- 一个html5表格代码
- SEO免费外链发布工具
- linux内核态real cred,Linux内核源码分析 -- 更新当前进程的 cred -- commit_creds
- 由 Microsoft 或 IP 网关供应商伙伴测试过的 PBX 配置
- C#网络应用编程——复习总结
- 【Unity小工具】一键制作艺术字,超简洁操作,策划与美术的福音!
热门文章
- Latex多行注释快捷键(Texstudio)
- away3d 4x骨骼控制器用法详解
- pms软件服务器维护,“/PMS”应用程序中的服务器错误请高手帮忙DBNETLIB 爱问知识人...
- iOS审核被拒那些坑(五)
- 点成分享| 空气卫生的重要性和病毒传播方式
- 【sql的mapper.xml文件】完美去除idea中mapper.xml文件中的黄色绿色背景色
- VCSA 上的 vmware-vpxd 服务失败,Web端提示503 服务不可用 (503 Service Unavailable)
- 用Java写句情话_哄对象最好用的22句情话,句句甜到心里
- 视频基础教程之——How To Kiss Someone Passionately
- Oracle裁员后会打算将云计算作为主战场吗?