python的資料分解和動態傳值, 的幾個簡單用法

2021-07-22 12:21:12 字數 2244 閱讀 8872

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 45

3,複合型元祖的做法

a, b, (c, d) = ("a", 1, ("name", 45))

print a, b, c, d

顯示的結果為:

a 1 name 45

4,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

顯示的結果為:

1

another arg: wang

another arg: 3

another arg: jing

2,**kwargs的用法

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: 1

another keyword arg: myarg2: two

another keyword arg: myarg3: 3

3,與1同理的做法,對元祖自動分解,然後賦值

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 蓋澆飯 辣條 麵條 列印的結果是我要吃 蓋澆飯 辣條 麵條 順序 先寫位置引數,再寫動態引數 最後是預設值引數,如果想修改預設值引...