###概述
賦值是各個編程語言通用的概念,而在Python有多種賦值方法以供選擇,比如元組、列表、序列賦值運算等,甚至還有擴展的序列解包賦值方法完成更加復雜的賦值運算。
一些基本賦值運算
下面示例介紹了元組賦值運算、列表賦值運算及任意對象的序列賦值的簡單使用
# 元組賦值運算 one, two, three = (1, 2, 3) print(one, two, three) # 列表賦值運算 one, two, three = [1, 2, 3] print(one, two, three) one = 1 two = 2 # 簡單序列賦值賦值 A, B = one, two print(A, B) # 將元組中的值賦值給列表 [a, b, c] = ('A', 'B', 'C') print([a, b, c])
示例結果:
1 2 3 1 2 3 1 2 ['A', 'B', 'C']
從示例我們看到,右側實際上支持任意可迭代的對象,但前提是右側對象內的元素個數需要與左側對應相等,比如將右側元組的值賦值左側的列表中。
高級序列賦值元素
前面我們提到序列賦值的元素條件之一就是等號兩邊的元素數量需要相等,但是在Python3中我們可以利用更加實用的擴展解包的方法,當然我們也可以利用其它的方式解決,比如利用切片解決一些元素不相等的情形。
S = 'STR' a, b, c = S print(a, b, c) # 利用切片解決兩邊元素不相等的情形 S = 'PYTHON' a, b, c = S[0], S[1], S[2:] print(a, b, c) # 嵌套賦值 (a, b), c = S[:2], S[2:] print((a, b), c)
示例結果:
('S', 'T', 'R') ('P', 'Y', 'THON') (('P', 'Y'), 'THON')
可以看到我們甚至可以利用切片進行嵌套賦值,完成更加復雜賦值運算。
原文:https://blog.csdn.net/Karven_/article/details/90146246