Python学习3——Python的简单推导
2024-09-01 01:47:15
列表推导是一种从其他列表创建列表的方式,类似于数学中的集合推导,列表推导的工作原理非常简单,类似于for循环。(以下代码均在IDLE实现)
最简单的列表推导:
>>>[x*x for x in range(9,0,-1)]
[81, 64, 49, 36, 25, 16, 9, 4, 1]
稍微复杂一点,加上判断条件:
>>>[x*x for x in range(9,0,-1) if x%2==0]
[64, 36, 16, 4]
继续复杂,多个for循环:
>>>[(x,y)for x in range(1,10) for y in range(1,10) if x%3==0 and y%3==0]
[(3, 3), (3, 6), (3, 9), (6, 3), (6, 6), (6, 9), (9, 3), (9, 6), (9, 9)]
这个时候就有疑问了,上边都用的是列表,那么元组可以吗?
答案显然是——不行!
什么?怎么不行呐?
实际上使用圆括号代替方括号并不能实现元组的推导,而是将创建生成器。
生成器又是个什么东西?
好的,这里我们先不讲述,后面继续学到之后再回过来解释。
虽然无法实现元组的推导,但使用花括号代替方括号却可以实现字典的推导。
>>>squares={i:"{} suared is {}".format(i,i**2) for i in range(5)}
>>> squares[0]
'0 suared is 0'
>>> squares[1]
'1 suared is 1'
>>> squares[2]
'2 suared is 4'
>>> squares[3]
'3 suared is 9'
>>> squares[4]
'4 suared is 16'
在列表推导中,for前面只有一个表达式,但在字典的推导中,for前面有两个用冒号分隔的表达式,这两个的表达式分别为键以及对应的值。
未完待续,持续更新中......
最新文章
- esnext:最后一个参数后面也允许加逗号了
- poj2488骑士马走
- HDU 4857 逃生 (优先队列+反向拓扑)
- php获取网站根目录
- 错误编码 = 10022 错误消息 = SDK 组件 Qupaisdk 启动出错,错误消息为 [Qupaisdk], the android stack error message is Fail to start the plugin, which is caused by No implem
- 当Scheduler拿不到url的 时候,不能立即退出
- html5之一些通用属性
- 利用分支限界法求解单源最短路(Dijkstra)问题
- OkHttp3源码详解(五) okhttp连接池复用机制
- EF大数据批量处理 EntityFrameWork下增加扩展方法
- VS2012使用验证控件出现[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。的解决办法。
- Linux内核第三节 20135332武西垚
- git 冲突解决办法
- 英国诗人乔叟Dethe is my Finaunce金融
- Using LACP with a vSphere Distributed Switch 5.1
- web前端要学哪些?
- UE4的csv文件导入、URL地址的读取及动态材质的设置
- disable_functions php-fpm root
- 按着shift键对dbgrid进行多条记录选择的问题(50分)
- Flask—07-建立自己的博客(01)
热门文章
- UAC就不能一次添加、永久信任吗?
- 读取注册表获取Windows系统XP/7/8/10类型(使用wcscmp比较wchar[]内容)
- c++实现游戏开发中常用的对象池(含源码)
- 条款16:成对使用new和delete时要使用相同的形式
- Laravel --- 自动生成数据
- tensorflow学习笔记-bili莫烦
- 精通并发与 Netty (一)如何使用
- HBase 学习之路(三)—— HBase基本环境搭建
- Spring ——表达式语言 Spring Expression Language (转载)
- 在java项目启动时就执行某操作