python里的拆包、引用、递归与匿名函数

简介:

拆包:*A拆元组,**B拆字典。

wKiom1nQOaeydXv0AAErBW15_nc758.png-wh_50 

 

引用:在CC++里面里面a=1b=a,实际上相当于硬链接,相当于两份ab各有一个1,多占一个空间,而在python里就是软连接,只有一份,通过id(a)来查看id都一样,

wKiom1nQOcLzrpBRAABzsXMEz3g225.png-wh_50 

 

python里定义的东西如一直没引用,那么就会成为垃圾,不用担心,python有自己的机制去除垃圾。

 

不可变类型:数字、字符串、元组。

可变类型:列表、字典,它们都不能做字典的key

 

递归:一个函数里调用了这个函数自己,递归完成阶乘,3的阶乘=3*(2的阶乘)

wKioL1nQOaCSKOcCAAAkHvqPGc8381.png-wh_50 

wKiom1nQOhKQtneJAABMR3AURJk838.png-wh_50wKioL1nQOc7RLjiCAADhQlnCb8w899.png-wh_50

 

 

递归时一定要想到何时要结束递归,不然最终程序一定会崩掉,因为它会占内存一直下去会将内存全部占完。

 

正反排序和倒序

  

wKiom1nQOmDC9px8AADjJZkX5ZA353.png-wh_50wKioL1nQOhvQ8CLAAABzRQ3vjHY391.png-wh_50


 

字典要想比大小需要通过匿名函数,匿名函数冒号后面的值就相当于key的返回值,可按照数字或asic码来做比较,如下:

wKioL1nQOk-weFl1AAB8oY8T5rw563.png-wh_50 

匿名函数用来实现某功能,简易化操作,不需要专门命名定义,也不用多条函数,当然传参又需要结果时,非常好用。

wKiom1nQOquRE8CPAABqEhu5PK0059.png-wh_50 

 

当需要调用匿名函数表达式时可以用eval来转换,相当于用int可以转换字符串为数字

wKiom1nQOxHBidHCAAFVAt9JAaU623.png-wh_50eval相当于把字符串lambda转为表达式

数值交换,第一种方法通过第三个空变量,相当于两满杯水要实现交换需要来一个空瓶:

wKioL1nQOvDS9xMEAABJQmyApaU783.png-wh_50 

第二种方法:

wKiom1nQO1rjk6sGAAAnxo6pD8c128.png-wh_50 

第三种方法:python独有

wKioL1nQOy_gBXBqAAA5YSVH_lI476.png-wh_50 

 

函数内部变量之所以不能修改全局变量,是因为全局变量为不可变,此时只能通过global参数来修改全局变量,但如果全局变量是列表或字典等可变的,那么函数内部变量即可以不加global关键字随时进行修改。

 

python里,num+=num不一定等于num=num+num,前面的意思代表可以直接对num赋值,在对函数内修改全局变量有效,而后面那个是对num赋一个新值,不能修改全局变量值,这点要注意。

本文转自  流颗星  51CTO博客,原文链接:http://blog.51cto.com/liukexing/1970074



相关文章
|
7月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
459 2
|
7月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1378 1
|
7月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
384 0
|
8月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
370 101
|
8月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
303 99
|
8月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
500 98
|
8月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
9月前
|
Python
Python 函数定义
Python 函数定义
880 155
|
10月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
741 0
|
9月前
|
数据处理 开发工具 开发者
requirement.txt 管理python包依赖
在 Python 项目中,`requirements.txt` 用于记录依赖库及其版本,便于环境复现。本文介绍了多种生成该文件的方法:基础方法使用 `pip freeze`,进阶方法使用 `pipreqs`,专业方法使用 `poetry` 或 `pipenv`,以及手动维护方式。每种方法适用不同场景,涵盖从简单导出到复杂依赖管理,并提供常见问题的解决方案,帮助开发者高效生成精准的依赖列表,确保项目环境一致性。
2871 4

推荐镜像

更多