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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python里的拆包引用递归与匿名函数相关的知识,希望对你有一定的参考价值。

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

技术分享 

 

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

技术分享 

 

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

 

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

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

 

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

技术分享 

技术分享技术分享

 

 

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

 

正反排序和倒序

  

技术分享技术分享


 

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

技术分享 

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

技术分享 

 

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

技术分享eval相当于把字符串lambda转为表达式

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

技术分享 

第二种方法:

技术分享 

第三种方法:python独有

技术分享 

 

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

 

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


以上是关于python里的拆包引用递归与匿名函数的主要内容,如果未能解决你的问题,请参考以下文章

Python递归函数与匿名函数

Python递归列出目录中文件脚本及其匿名函数

python协程函数递归匿名函数与内置函数使用模块与包

python之内置函数与匿名函数递归函数初识

python第五天:协程,匿名函数,递归函数,模块导入,re模块

七 递归与二分法匿名函数内置函数