当前位置: 首页 > news >正文

python中几个有趣的函数和推导式

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

一、range()函数

1、range()通常用来做循环。

2、range()生成器的特性。

例子:假如range()中使用的数值特别大,为100000000000000000000000000000?

python解释器还能正常工作吗?

如果是事先生成100000000000000000000000000000个数,然后依次遍历生成,那么内存肯定溢出。而实际上如此巨大的数值依然不会使程序卡死。

代码

for i in range(100000000000000000000000000000):print(i)if i > 10:break
#输出
0
1
2
3
4
5
6
7
8
9
10
11      

因为range()函数会使用类似于生成器的特性,每次循环会记住上次使用时生成的结果值,然后从断点处继续生成,这样就避免了空间浪费。

二、递归的雷区

在计算机中,递归都是通过“栈”(stack)这种数据结构来实现的,每当递归加深一层,栈顶就增加一层,每当递归减少一层,栈顶就减少一层。

在python当递归深度达到1000层是,会导致栈溢出。

三、匿名函数lambda

1、匿名函数实例: lambda x : x+1。:前面表示传入的参数,后面表示需要执行的代码。

无需写返回值。

2、匿名函数也是函数,有自己的命名空间。

四、推导式

1、列表推导式

即用简短的语法来生成一个列表,通常用[]表示。

常规版:

print([x for x in range(10)])
#输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

增加过滤条件:

print([x for x in range(10) if x >5])
#输出
[6, 7, 8, 9]

还可以增加多个变量和条件进行筛选。

2、字典推导式

即用简短的语法来生成一个字典,通常用{}表示。

print({x:x+2 for x in range(10)})
#输出 #小编创建了一个Python学习交流群:702813599
{0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 8, 7: 9, 8: 10, 9: 11}

注意:必须药用:来表示key-value

3、集合推导式

与字典推导式类似,但是要去掉‘ :’

print({x+2 for x in range(10)})
#输出
{2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

注意:没有元组推导式!没有元组推导式!因为()标识符被用作生成器的标识符号了。所以想要创建元组推导式,可以用显式函数tuple()来表示。

print(tuple(x for x in range(5)))
#输出
(0, 1, 2, 3, 4)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

http://www.lryc.cn/news/109307.html

相关文章:

  • 【Jenkins】Jenkins 安装
  • LNMP搭建以及Discuz论坛部署
  • MGRE综合
  • hcip的mgre和ospf实验
  • gdb学习笔记
  • java -jar指定外部配置文件
  • 【IDEA】常用插件清单
  • 私域流量运营数据分析:6个关键指标
  • 解释器模式——自定义语言的实现
  • 基于STM32103移植FreeRTOS
  • docker compose一键部署lnmt环境
  • Eeny Meeny Moo
  • flask---闪现/请求扩展/g对象
  • Qt视频播放器
  • Stable Diffusion教程(8) - X/Y/Z 图表使用
  • Android 获取网关 ip 和 DNS ip
  • Docker root用户的pip使用方法
  • 企业新片场排名如何优化
  • Database Name
  • git代码版本管理
  • k8s概念-ConfigMap
  • Mybatis 实体类属性名和表中字段名不一致怎么处理
  • CAS - 从AtomicInteger窥探CAS
  • micro-ros IMU ML 代码
  • 二十三种设计模式第二十四篇--访问者模式(完结撒花)
  • 月报总结|Moonbeam 7月份大事一览
  • 【2023.8】docker一键部署wvp-GB28181-pro和ZLMediaKit过程全记录
  • 【2023】字节跳动 10 日心动计划——第四关
  • 数据库与数据仓库的区别及关系
  • Emacs之设置行号前景颜色(字体颜色)/背景颜色/光标颜色/背景透明度(一百二十七)