在python中,序列解包賦值是一種常用的賦值語法。
a, b, c =(1
,2,3
)x, y =[4
,5]print
(a, b, c)
print
(x, y)
這種用法是很常見的。
其實,=號右側不但可以使用常見的列表、元組等內建型別,更一般的對於所有的可迭代物件都是支援的,包括字典、檔案、range、zip object、enumerate object、map object、filter object、生成器等。
a, b, c =
range(3
)print
(a, b, c)
對於檔案,可以使用解包賦值語法將行賦值給變數。
函式呼叫時,位置引數的傳遞也可以使用解包的方法進行傳參。
def
f(a, b, c)
:print
(a + b + c)f(*
range(3
))
列印矩陣或列表是一種常見的需求。一般列印列表可以使用for迴圈簡單實現:
a =[1
,2,3
]for i in a:
print
(i, end=
' ')
但是由於解包賦值的存在,可以使用更簡潔的**,不需要使用迴圈語句:
a =[1
,2,3
]print
(*a)
尤其是對於矩陣的列印,避免了巢狀迴圈:
a =[[
1,2,
3],[
4,5,
6],[
7,8,
9]]for row in a:
print
(*row)
鏈式賦值 系列解包賦值 常量
鏈式賦值 用於同乙個物件賦值多個變數。eg x y 123,相當於 x 123 y 123 系列解包賦值 系列資料賦值給對應個數的變數 個數必須保持一致 使用系列解包賦值實現變數交換 a,b 10,20 a,b 20 10 print a,b 常量,python不支援,但實際上可以,只是邏輯是不一樣...
解包kwargs python的封包與解包
將多個值賦值給乙個變數時,python會自動將這些值封裝成元組,這個特性稱之為封包 a 1,2,3 print a,type a 1,2,3 當函式返回多個數值時,也會進行封包 def test return 1,2,3 a test print a,type a 1,2,3 實踐中,很少主動使用封...
矩陣特殊列印與旋轉
題意 給定n,m表示矩陣的行與列,已經整個矩陣的值,然後按照順時針方向列印該矩陣。例 題解 可以將每列印一圈看成乙個週期 即 第一步 從左到右列印 第二步 從上到下列印 第三步 從右到左列印 第四步 從下到上列印 其中對於每個週期,第一步肯定是會進行的,但是其他步驟不一定會進行,於是加以特判,具體見...