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.hqwc.cn/news/52632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go学习第四天

Interface空接口万能类型与类型断言机制 package mainimport "fmt"// interface{}是万能数据类型 func myFunc(arg interface{}) {fmt.Println("myFunc is celled....")fmt.Println(arg)// interface{} 该如何区分 此时引用的底层数据类型到底是什么&…

iPhone 7透明屏的显示效果怎么样?

iPhone 7是苹果公司于2016年推出的一款智能手机,它采用了4.7英寸的Retina HD显示屏,分辨率为1334x750像素。 虽然iPhone 7的屏幕并不是透明的,但是苹果公司在设计上采用了一些技术,使得用户在使用iPhone 7时可以有一种透明的感觉…

【实操教程】如何开始用Qt Widgets编程?(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中&#xff0…

乳腺癌CT影像数据的深度学习:R语言与ANN神经网络构建高性能分类诊断模型

一、引言 乳腺癌是全球最常见的女性恶性肿瘤之一,也影响着男性的健康。据统计,每年有数百万人被诊断出患有乳腺癌[1]。乳腺癌的早期检测和准确诊断对于治疗和预后至关重要。然而,乳腺癌的早期诊断面临许多挑战,如图像解读的主观性…

Qt QThread的moveToThread方法使用

Qt线程简介 从 Qt4.4 版本之后,因为 QThread 的 run 方法创建新线程这样实现与 Qt 设计的理念不符,Qt 主推使用 moveToThread 方法来创建新线程。QThread 应该被看做是操作系统线程的接口或控制点,而不应该包含需要在新线程中运行的代码。需…

数据结构10 -查找_树表查找

创建二叉搜索树 二叉搜索树 二叉搜索树是有数值的了,二叉搜索树是一个有序树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它…

在线LaTeX公式编辑器编辑公式

在线LaTeX公式编辑器编辑公式 在编辑LaTex文档时候,需要输入公式,可以使用在线LaTeX公式编辑器编辑公式,其链接为: 在线LaTeX公式编辑器,https://www.latexlive.com/home 图1 在线LaTeX公式编辑器界面 图2 在线LaTeX公式编辑器…

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

Hive Hadoop Hive 和传统关系型数据库区别 Spark 概念 基于内存的分布式计算框架 只负责算 不负责存 spark 在离线计算 功能上 类似于mapreduce的作用 MapReduce的缺点 运行速度慢 (没有充分利用内存)接口比较简单,仅支持Map Reduce功能…

W5100S-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W5100S-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行DNS域名解…

kubernetes基于helm部署gitlab

kubernetes基于helm部署gitlab 这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab。 先决条件 已运行的 Kubernetes 集群负载均衡器,为ingress-nginx控制器提供EXTERNAL-IP,本示例使用metallb默认存储类,为gitlab pods提供持久化存储&…

深度学习Redis(2):持久化

前言 在上一篇文章中,介绍Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持…

HTML 基础标签

前言 当今互联网时代&#xff0c;网页是我们获取信息、交流和展示自己的重要渠道之一。而HTML&#xff08;超文本标记语言&#xff09;作为构建网页的基础&#xff0c;学习掌握HTML标签成为了必不可少的技能。 标题标签 <h1>~<h6>&#xff1a;这是用来定义标题的…