为什么课程示例用的kwargs.get,但练习答案就用了kwargs[ ]?
我有点乱...用[ ]是为了制造list吗?而kawargs.get( )产生的是dict?
因为最后应用时,names=['Alice','Bob',Candy']...[16,17,15])是list,
所以应为函数最后要应用到list上面,所以前面函数需要把kwargs转换为list?
# Enter a code
def infom(**kwargs):
names_list=kwargs['names']
gender_list=kwargs['gender']
age_list=kwargs['age']
index=0
for name in names_list:
gender=gender_list[index]
age=age_list[index]
print('name:{},gender:{},age:{}'.format(name,gender,age))
index=index+1
您可以试一下,kwargs[]和kwargs.get()是一样的,不会报错,也不会影响结果,但是如果key值不存在,那么[]会报错,get()不会报错,显示默认值,您可以试一下
不是都可以吗把kwargs[ ]换成kawargs.get( )也行啊
1、首先可变关键字参数(kwargs)与可变参数(args)的区别就是前者是默认为dict, 后者默认为tuple,其中dict是属于key+value,key必须是唯一的,对应题目意味着name作为key只能出现一次
可以看到示例里面的name只是单次出现的,而练习的时候,name中添加了多个value,其实两者都可以提取关键字,而练习要求的是《分别把每个同学的名字。。。》,所以需要将name提取出一个list进行遍历使用
2、后面你所有的提问都是对的