1 1 將序列分解為單獨的變數

2021-10-24 10:08:12 字數 1597 閱讀 3537

現在有乙個包含 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

>>

>

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

將序列分解為單獨的變數

我們有乙個包含n個元素的元組或序列,現在想將它分解為n個單獨的變數 任何序列 可迭代的物件 都可以通過乙個簡單的賦值操作來分解為單獨的變數。唯一的要求時變數的總數和結構要與序列相吻合 例如 p 4,5 x,y p print x 4 print y 5 data bai 80,67.3,2012,3...

將真分數分解為埃及分數

分子為1 的分數稱為埃及分數,現輸入乙個真分數,請將該分數分解為埃及分數。如 8 11 1 2 1 5 1 55 1 110。問題分析與演算法設計 若真分數的分子a能整除分母b,則真分數經過化簡就可以得到埃及分數,若真分數的分子不能整除分母,則可以從原來的分數中分解出乙個分母為b a 1的埃及分數。...

將整數分解為連續正整數之和

將乙個整數 n 分解為連續正整數之和,如 15 可以分解為 15 1 2 3 4 5 15 4 5 6 15 7 8 計算從 i 開始連續 k 個數之和 sum k 2 i k 1 2 當 sum n 時,有 k k 2 i 1 k 2 n 0 變形為 i 2 n k k 1 2。在 2,2 n k...