在Python,要用函数接收列表或元组或字典,我们可以采用在这几种类型的参数前面加上 * 或 ** 即可解决。
在函数中接收元组,程序代码如下:
#参数前面为 * ,代表这个位置的参数不知道有多少个参数,如果有,则将其存储为元组
def x(a,b,*c):
print "第一个参数为:" + str(a)
print "第二个参数为:" + str(b)
print "参数c为:" + str(c)
print "第三个参数为:" + str(c[0])
打开python IDLE,输入以下命令:
>>> x(2,7)
第一个参数为:2
第二个参数为:7
参数c为:()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
x(2,7)
File "C:\Users\Administrator\Desktop\123.py", line 6, in x
print "第三个参数为:" + str(c[0])
IndexError: tuple index out of range
>>>
>>>
>>> x(2,7,9)
第一个参数为:2
第二个参数为:7
参数c为:(9,)
第三个参数为:9
>>>
>>>
>>> x(2,3,5,3)
第一个参数为:2
第二个参数为:3
参数c为:(5, 3)
第三个参数为:5
>>>
注意:接收元组和接收列表是一样的,两者存在微小的区别,即列表的值可修改,而元组的值不可修改。
在函数中接收元组和字典,代码程序如下:
#参数前面为 ** ,代表这个位置的参数不知道有多少个参数,如果有,则将其存储为字典
def y(*c,**k):
print c
print k
打开python IDLE,并输入以下命令:
>>> y(a=1,b=2,c=3)
()
{'a': 1, 'c': 3, 'b': 2}
>>>
>>>
>>> y(1,2,3,4)
(1, 2, 3, 4)
{}
>>>
>>>
>>> y(1,2,3,4,a=1,b=2)
(1, 2, 3, 4)
{'a': 1, 'b': 2}
>>>