我們有乙個包含n個元素的元組或序列,現在想將它分解為n個單獨的變數
任何序列(可迭代的物件)都可以通過乙個簡單的賦值操作來分解為單獨的變數。
唯一的要求時變數的總數和結構要與序列相吻合
例如:
p = (4, 5)
x, y = p
print(x) #4
print(y) #5
data = ['bai', 80, 67.3, (2012,34,456)]
name, shares, price, date = data
print(name) #bai
print(shares) #80
print(price) #67.3
print(date) #(2012, 34, 456)
traceback (most recent call last):
valueerror: too many values to unpack (expected 3)
實際上不僅僅只是元組或列表,只要物件恰好時可迭代的,那麼就可以執行分解操作。
這包括字串、檔案、迭代器以及生成器。
比如:
s = "word"
a, b, c, d = s
print(a) #w
print(b) #o
print(c) #r
print(d) #d
當做分解操作時,有時候可能想丟棄某些特定的值,python並沒有提供特殊的語法來實現這一點,但是通常可以選乙個用不到的變數名,以此來作為要丟棄的值的名稱。
例如:
data = ['bai', 80, 67.3, (2012,34,456)]
_, shares, price, _ = data
print(shares) #80
print(price) #67.3
但是請確保選擇的變數名沒有在其他地方用到過 1 1 將序列分解為單獨的變數
現在有乙個包含 n 個元素的元組或者序列,怎樣將它裡面的值解壓後同時賦值給 n 個變數?任何的序列 或者是可迭代物件 可以通過乙個簡單的賦值操作來分解為單獨的變數。唯一的要求就是變數的總數和結構必須與序列相吻合。示例 p 4 5 x,y p x 4 y 5 data acme 50 91.1,201...
將真分數分解為埃及分數
分子為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...