Python函数赋值给一个变量 || args和kwargs的作用 || tuple与list区别

1. python中函数是可以直接赋值给变量,但注意不要写括号(),有括号是执行函数。

1.1 示例一

def fun(*arg):
	a=arg[0]*arg[1]
	return a 
Test=fun
result=Test(3,4)

输出
12

1.2 示例二

def wrapper(N):
	def add(X):
		return X+N
	return add
test=wrapper(4)# 这里test等于在N=4,被指定情况下的add函数
print(test(3))

输出
7

2. * args和**kwargs的详解

2.1 args是arguments的缩写,kwargs是keyword arguments的缩写,这两个均可以用其他参数名替换。

  • args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用args和**kwargs时,必须*args参数列要在**kwargs前。
    补充:
  • *args是用来传递一个非键值变长参数列表功能。
  • **kwargs通常用来传递关键字变长参数。

2.2 *args

  • *args代表传入列表list或者tuple;其使用代码举例如下,这里给出了两种传入参数的方法及参数变量遍历方法。注意列表 list or 元组tuple在传入时需加*号。
def test(*args):
    print(args[0])
    print("***************")
    for arg in args:
        print(arg)
    return 
    
a=(1,2,3)
test(*a)
test(5,6,7)

输出
1
***************
1
2
3
5 #这里开始是test(4,5,6)的输出
***************
5
6
7

2.3 **kwargs

  • kwargs 必须是dict类型,这里给出使用举例,可以通过字典传参,但必须在变量前加**;也可以直接新定义参数传入。
def test(**kwargs):
    for key,value in kwargs.items():
        print("key: ",key," value: ",value)

# method1
d={"Nancy":21,"Tom":24}
test(**d)

# method2
print("")
test(Jack=22,Jenny=20)

输出:

key: Nancy value: 21
key: Tom value: 24

key: Jack value: 22
key: Jenny value: 20

3. tuple与list的区别

3.1 区别一,tuple一旦创建,就不能被修改,list被创建后,可以修改

  • 定义tuple和list的方法类似,区别是元组集合用小括号,list是中括号
3.1.1 Tuple的好处
  • Tuple 比list操作速度快,如果一个常量集的唯一用处是不断遍历它,请使用tupe代替list;
  • 对于不需要修改的数据进行“写保护”,可以使代码更安全。如果必须修改这些值,则需要执行tuple到list转换。

3.2 区别二 Tuple不存在的方法

*不能向tuple里增加元素,因此tuple没有append或者extend函数

  • 没有remove或pop函数,因为不能删除元素
  • 没有Index函数,不能在tuple中查找元素
  • 可以使用for i in tt来遍历元素。或者[]来索引,如tt[0]

3.3 Tuple和list可以相互转换

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值