python中內建了很多有用的資料結構,列表list , 集合set,字典dict.那今天我們就根據這幾個資料結構來看看python中 * 的用法。*的作用,如果在函式引數中*表示的是不限的位置引數。*args,**kwargs則說明了python中函式的動態賦值用法。
python2.x的寫法
1.先看乙個簡單的例子
a,b,c,d='wang'
print a,b,c,d
顯示的結果為:
w a n g這說明了字串「wang」對應的四個字元,自動被分解為 w ,a ,n ,g 給對了對應的變數
2,再看python中元祖的自動的分解
a, b= ("name", 45)
print a,b
顯示的結果為:
name 453,複合型元祖的做法
a, b, (c, d) = ("a", 1, ("name", 45))
print a, b, c, d
顯示的結果為:
a 1 name 454,python中dict 的分解
a, b, c =
print a, b, c
顯示的結果為 :
addrlist name ***說明python對已知長度的資料,可以做很好的自動分解,針對dict取到的是key
python3.x的寫法
對不知道長度的資料做了動態分解
a,*b ,c=』wangjing』
print a ,b ,c
顯示的結果為:
w angjin g也就是說字串wangjing,把首位賦值給了a,c ,把其它不知長度的值都給了b
python中當函式的引數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有key值
1,*args的用法
def fun_args(pram, *args):
print pram
for value in args:
print "another arg:", value
fun_args(1, 'wang', 3,'jng') # *args可以當作可容納多個變數組成的list
顯示的結果為:
12,**kwargs的用法another arg: wang
another arg: 3
another arg: jing
def fun_var_kwargs(farg, **kwargs):
print "arg:", farg
for key in kwargs:
print "another keyword arg: %s: %s" % (key, kwargs[key])
fun_var_kwargs(farg=1, myarg2="two", myarg3=3)
myarg2和myarg3被視為key, **kwargs可以當作容納多個key和value的dictionary
顯示結果為:
arg: 13,與1同理的做法,對元祖自動分解,然後賦值another keyword arg: myarg2: two
another keyword arg: myarg3: 3
re = ('wangjing',true)
def fuc(a, b):
print a, b
fuc(*re)
顯示結果為:
wangjing true尾記:
針對python中資料結構更加詳細的用法,可以直接進官網檢視這個是python3.x的用法
python 動態傳引數
def trans para args,kwargs print args,type args print kwargs,type kwargs trans para jinxin 12,1,2,3,4 3,4,1,4,7 country china 動態引數,也叫不定長傳參,就是你需要傳給函式的引...
Python的傳值和傳值
變數a傳入函式f之後,函式內部對a進行的操作會不會影響到函式外部的a?def f a a 1 99a 1,2,3 f a print a 1,99,3 有影響def f a a 1 a 1 2,3 f a print a 1,2,3 無影響classa def init self,v self.v ...
python10 動態傳參
動態傳參 def chi food 可以傳入任意的位置引數,是任意,food就是形參的名字 print 我要吃 food 動態引數接收到的是tuple型別的資料 chi 蓋澆飯 辣條 麵條 列印的結果是我要吃 蓋澆飯 辣條 麵條 順序 先寫位置引數,再寫動態引數 最後是預設值引數,如果想修改預設值引...