將序列分解為單獨的變數

2021-10-01 11:43:00 字數 991 閱讀 6908

我們有乙個包含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...