Python函数和lambda表达式

PYTHON 函数

参数传递

传递方式解释
位置参数按顺序传递
关键参数指定参数名称
默认值参数拥有默认值的参数
可变长度参数*p 传递元组 ,**p传递字典

序列解包

* 可以对序列进行解包。

def test(a,b,c):
	return a + b + c

tup = (1, 2, 3)
set = {1, 2, 3}
dic = {1:'a', 2:'b', 3:'c'}

test(*tup)
test(*set)
test(*dic)

dict 对于字典的序列解包

字典对象作为实参的时候默认使用字典的 键值 ,若要使用其元素作为参数则需要使用 items() 方法加以解释说明

序列解包传参的优先顺序

  1. 解包传参相当于传递 位置参数优先处理
  2. 同时进行解包传参时,含有关键参数的需要放在最后进行解包

global 关键字

x = 1
def test():
	global x
	print(x)

隐式的全局变量:无声明只引用无赋值
隐式的局部变量:无声明有赋值
除非显示声明 global关键字才被认为是全局变量

lambda 表达式

lambda表达式只允许包含一个表达式,表达式的计算结果相当于函数的返回值
lambda常常用来声明匿名函数

lambda + List

L = [(lambda x:x**2),(lambda x:x**3),(lambda x:x**4)]
print(L[0](2),L[1](2),L[2](2))

lambda + map

map 映射

L = [1,2,3,4,5]
print(map((lambda x:x+10),L))

lambda 中执行函数

L = [1,2,3,4,5]
print(map((lambda x:test(x)),L))

lambda 规定排序规则

import random
random.shuffle(data)
data.sort(key = lambda x:x)
data.sort(key = lambda x:len(str(x)))
data.sort(key = lambda x:len(str(x)),reverse = True)

lambda 作用域

  1. 要注意lambda表达式使用的参数是lambda的局部变量还是全局变量
  2. 若使用全局变量可能引发错误
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值