解壓序列賦值給多個變數

2021-08-20 14:51:10 字數 1188 閱讀 1167

現在有乙個包含 n 個元素的元組或者是序列,怎樣將它裡面的值解壓後同時賦值給 n 個變數?

>>> p = (4, 5)

>>> x, y = p

>>> x

4>>> y

5>>>

>>> data = [ 'acme', 50, 91.1, (2012, 12, 21) ]

>>> name, shares, price, date = data

>>> name

'acme'

>>> date

(2012, 12, 21)

>>> name, shares, price, (year, mon, day) = data

>>> name

'acme'

>>> year

2012

>>> mon

12>>> day

21>>>

如果變數個數和序列元素的個數不匹配,會產生乙個異常。

>>> p = (4, 5)

>>> x, y, z = p

traceback (most recent call last):

file "", line

1, in

valueerror: need more than 2 values to unpack

>>>

實際上,這種解壓賦值可以用在任何可迭代物件上面,而不僅僅是列表或者元組。包括字串,檔案物件,迭代器和生成器。

>>> s = 'hello'

>>> a, b, c, d, e = s

>>> a

'h'>>> b

'e'>>> e

'o'>>>

有時候,你可能只想解壓一部分,丟棄其他的值。對於這種情況 python 並沒有提供特殊的語法。但是你可以使用任意變數名去佔位,到時候丟掉這些變數就行了。

>>> data = [ 'acme', 50, 91.1, (2012, 12, 21) ]

>>> _, shares, price, _ = data

>>> shares

50>>> price

91.1

>>>

你必須保證你選用的那些佔位變數名在其他地方沒被使用到。

python 同時給多個變數賦值

python中可以同時給多個變數賦值,下面列舉了三種方法 assign values directly a,b 0,1 assert a 0 assert b 1 assign values from a list r,g,b red green blue assert r red assert g...

把序列中的N個元素賦值給多個變數

序列 可通過偏移量來進行切片的物件。列表 元組 字串都屬於序列。雜湊 無法通過偏移量來進行切片的物件。比如 集合 字典 data acme 50,91.1,2012,12,21 name,shares,price,date data name acme date 2012,12,21 name,sh...

oracle into 一次給多個變數賦值

建表,插資料 prompt pl sql developer import file prompt created on 2012年5月23日 by administrator set feedback off set define off prompt creating student.creat...