abstract:解決的問(wèn)題需要將數(shù)組(list)或元組(tuple)中的元素導(dǎo)出到N個(gè)變量中。解決的方案任何序列都可以通過(guò)簡(jiǎn)單的變量賦值方式將其元素分配到對(duì)應(yīng)的變量中,唯一的要求就是變量的數(shù)量和結(jié)構(gòu)需要和序列中的結(jié)構(gòu)完全一致。p = (1, 2) x, y = p # x = 1 # y = 2
解決的問(wèn)題
需要將數(shù)組(list)或元組(tuple)中的元素導(dǎo)出到N個(gè)變量中。
解決的方案
任何序列都可以通過(guò)簡(jiǎn)單的變量賦值方式將其元素分配到對(duì)應(yīng)的變量中,唯一的要求就是變量的數(shù)量和結(jié)構(gòu)需要和序列中的結(jié)構(gòu)完全一致。
p = (1, 2) x, y = p # x = 1 # y = 2 data = ['google', 100.1, (2016, 5, 31)] name, price, date = data # name = 'google' # price = 100.1 # date = (2016, 5, 31) name, price, (year, month, day) = data # name = 'google' # price = 100.1 # year = 2016 # month = 5 # day = 31
如果變量結(jié)構(gòu)和元素結(jié)構(gòu)不一致,你將會(huì)遇到以下錯(cuò)誤:
p = (1, 2) x, y, z = p Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> x, y, z = p ValueError: not enough values to unpack (expected 3, got 2)
其實(shí)這樣的操作不限于元組和數(shù)組,在字符串中也是可以用的。Unpacking支持大多數(shù)我們常見(jiàn)的序列,比如文件迭代,各種生成器等等。
s = 'Hello' a,b,c,d,e = s # a = 'H' # b = 'e'
如果導(dǎo)出過(guò)程中你想丟掉一些元素,其實(shí)Python并不支持這樣的語(yǔ)法,不過(guò)你可以指定一些不常用的變量來(lái)達(dá)到你的目的。
data = ['google', 100.1, (2016, 5, 31)] name, _, (_,month,_) = data # name = 'google' # month = '5' # other fileds will be discarded
更多關(guān)于使用Python將數(shù)組的元素導(dǎo)出到變量中請(qǐng)關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!