python 只取数值_Python:你会生成列表吗?-- 列表生成式
当有人问你:“你会用 Python 生成列表吗?”
我想你一定会说:“当然会啊,这有什么难的。”
那人再问:“那你会列表生成式吗?”
你:“啊?好像不会。”
好的,现在我已经成功用一个巧妙地开头带入了今天的主题
那么我们今天就来说一说 Python 的列表生成式,如果您已经很熟练了,那可真棒!不会的我们继续学下去,一般来说,如果我们要用 Python 来定义一个列表,要求列表里的元素是 0~9,我们可能会选择这么做:
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
很好,这样的做法显然很聪明,但是还有更聪明的:
a = list(range(10))
这两种方法都可以满足我们的要求,但是很显然第二种更优秀,不过我相信这样的列表大家都没问题,然后我们现在有一个更无理的要求,我想要生成一个这样的列表:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
这时你会怎么做呢?我先来介绍一种最基础的方法吧:
a = [] #创建一个空列表
for i in range(1, 10):
a.append(i * i) #往列表里添加元素
就是使用循环,遍历 1~9 将每个元素的平方一次存入已经创建好的空列表 a,接下来,我们今天的主角就要入场了,还记得昨天的文章里提到过的列表生成式吧
我们现在先来解决当下这个问题,最后再来回顾一下昨天的问题,现在用列表生成式来创建一个满足上诉要求的列表:
a = [i * i for i in range(1, 10)]
其实这个可以看做是将上一个方法的循环直接放在列表里进行操作,列表 a 里存放的就是 i * i,不过 i 是属于 1~9 的,这就叫列表生成式,那昨天哪个问题其实也很简单嘛,先回顾一下代码:
list = ["%d%02d" % (2019, m + 1) for m in range(12)]
这是要构建一个 2019xx 格式的日期,列表生成式是用来生成 xx 的月份元素的,即从 0~11 依次取一个数 m,然后 m + 1 就是需要的月份,好了,学会了基本的列表生成式我们现在开始进阶
我们现在又有了一个更无理的要求,我们要定义一个这样的列表:
[4, 16, 36, 64]
分析一哈,就是上一个无理要求但是只要偶数的平方嘛,那我们这个列表生成式怎么写呢?
a = [i * i for i in range(1, 10) if i % 2 == 0]
这就是在上一个列表生成式的基础上加了一个 if 判断,只取 1~9 中的偶数,现在这个要求也简单完成了,我们又提出了一个更无理的要求,我们要生成一个这样的列表:
['1A', '2B', '3C']
这个其实更好理解了,来看一下用列表生成式怎么用:
a = [x + y for x in '123' for y in 'ABC']
这个就不解释了,很简单吧,当然这样也可以用三层循环等多层循环,以上就是今天要讲的全部内容了
留个课堂作业:生成一副扑克牌的点数和花色(除大小王以外),例如:
[(2, '梅花'), (2, '方块'), (2, '红桃'), (2, '黑桃'), (3, '梅花'), ..., (A, '梅花'), (A, '方块'), (A, '红桃'), (A, '黑桃')]
答案不唯一啊
python 只取数值_Python:你会生成列表吗?-- 列表生成式相关推荐
- 【Python】随机划分数据集并生成VOC格式列表
1.Introduction 做目标检测时,用LabelImg生成的 xml 文件需要和对应的图片文件名,生成VOC格式列表.同时需要按照一定比例划分为训练集.验证集和测试集. 2.Materials ...
- python进行谱曲_python进行曲——迭代生成
迭代器 - 概念 可迭代协议 : 内部含有__iter__方法的值/变量都是可迭代的 通过可迭代变成迭代器 : 可迭代变量.__iter__()返回一个迭代器 迭代器协议 : 内部含有__iter__ ...
- python绘制梅花_Python | 巧用生成表达式、让循环显得高大上 !
Python资源共享群:626017123 在 Python 中使用生成表达式,有以下三点好处: 1. 提高代码运行速度 2. 简化代码,使代码显得更精炼 3. (重点)是你的代码看上去像" ...
- python随机奇数_python怎么随机生成奇数
python随机生成奇数的方法: 实现思路: 1.需要用到random模块 2.用列表展现给用户 3.检查这个数是否为奇数,在用append的方法将为奇数的随机数写入列表中 4.为了保证能输入与用户输 ...
- 浙大python读者验证码_Python实现简单生成验证码功能【基于random模块】
本文实例讲述了Python实现简单生成验证码功能.分享给大家供大家参考,具体如下: 验证码一般用来验证登陆.交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内 ...
- python内存分配_Python进阶2-元组和列表的内存分配机制
本系列文章是一系列学习笔记,希望较为深入地分析Python3中的原理.性能,文章中绝大部分观点都是原作作者的观点(如下),本人对书中示例加以实践和总结,并结合相应的Python的C语言源码(3.6.1 ...
- python批量生成图片_python图像处理-批量生成纯色图片
前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 上一 ...
- python list合并_python中如何合并两个列表
python合并列表的方法如下: 方法一 最原始,最笨的方法,分别从两个列表中取出所有的元素,再放入新列表中就OK了.示例代码如下:list1 = [1,2,3] list2 = [4,5,6] li ...
- python 只取数值_快收藏!Python常用操作运算符,都在这了!(下)
泰迪学院-Python基础 公众号ID:taidixueyuan 还未阅读第一篇的小可爱,在这里可以直接跳转 快收藏!Python常用操作运算符,都在这了!(上) 5. 逻辑运算符 逻辑运算符包含an ...
最新文章
- 2021年诺贝尔经济学奖评述:解决重大社会问题的自然实验因果框架
- vb.net写一个简易的RSS阅读器
- springboot 定制个性 banner
- jQuery+php+ajax实现无刷新上传文件功能
- 电脑版企业微信_企业微信教育版功能更新啦!
- Mybatis Xml 传入动态字段 排序
- Spring Boot下无法加载主类 org.apache.maven.wrapper.MavenWrapperMain问题解决
- 修改el-popover和el-select样式
- React Native 宣布重构计划!
- 调整窗口大小时进行页面刷新(设定定时器)
- 本周4天4场直播,解决你对Oracle的种种疑惑,还有第2期大咖讲坛讨论敏捷开发中的性能质量管控...
- 方维分享系统,品牌无法设置分类关联
- Java实现redis管道
- 嵌入式语音识别系统是什么
- Windows基本磁盘结构简析(二)——MBR结构分析
- Install/Remove of the Service Denied
- 怎么清理C盘释放空间 ?
- 发光强度、亮度、光照度,这些不常见的单位傻傻分不清?
- 小说形象特征包括哪些方面_小说的基本特征是塑造人物形象
- firebase 推送_使用Firebase Cloud Messaging发送推送通知
热门文章
- python 列表(list)操作及函数
- html禁止文本选择,[译]用CSS来禁止文本选择
- 开户oracle监听,R12:银行账户开户人?
- 为什么ubuntu64位下C语言for循环不能超过2147483647次?(size_t )
- web前端入门学习 css(9)广义的html5 品优购项目(html+css基础完结,js开始,移动端布局开始)
- python PyQt5.QtWidgets.QWidget.mouseMoveEvent()函数
- C++ 栈和堆上建立对象的区别
- 机器学习中的训练与损失 test and loss (训练loss不下降原因集合)
- python sklearn.model_selection.ShuffleSplit()函数的用法
- python numpy.arange() 函数的使用方法 (在给定间隔内返回均匀间隔的值)