解決的問題
需要將數組(list)或元組(tuple)中的元素導出到N個變量中。
解決的方案
任何序列都可以通過簡單的變量賦值方式將其元素分配到對應的變量中,唯一的要求就是變量的數量和結構需要和序列中的結構完全一致。
p = (1, 2)x, y = p# x = 1# y = 2data = ['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
如果變量結構和元素結構不一致,你將會遇到以下錯誤:
p = (1, 2)x, y, z = pTraceback (most recent call last): File "<pyshell#12>", line 1, in <module> x, y, z = pValueError: not enough values to unpack (expected 3, got 2)
其實這樣的操作不限于元組和數組,在字符串中也是可以用的。Unpacking支持大多數我們常見的序列,比如文件迭代,各種生成器等等。
s = 'Hello'a,b,c,d,e = s# a = 'H'# b = 'e'
如果導出過程中你想丟掉一些元素,其實Python并不支持這樣的語法,不過你可以指定一些不常用的變量來達到你的目的。
data = ['google', 100.1, (2016, 5, 31)]name, _, (_,month,_) = data# name = 'google'# month = '5'# other fileds will be discarded
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能有所幫助,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。
新聞熱點
疑難解答