Python變量賦值技巧彙總貼

一、什麼是賦值

python的賦值是通過“=” 將右邊的對象賦值給左邊的變量,如:

a = 'test'		#將字符串賦值給變量a
a = 123			#將數值賦值給變臉a
a = [1,2,3]		#將列表賦值給變量a

通過上面的賦值測試,我們會發現變量a是沒有類型的,而類型的區別只存在於右側的對象中。故可以將各種類型的對象賦值給變量。在Python內部,對於賦值的實現,本質上是建立將變量指向對象的引用過程,並不是將對象進行復制的過程。賦值過程有以下三個特點:

  1. 賦值的過程是建立變量到對象的引用的過程
  2. 變量在首次賦值時被創建
  3. 變量在引用前必須先賦值

二、賦值類型

1. 序列賦值

python將=右側序列的值依次和左側的序列中的變量相互對應匹配,給每一個變量賦值,如:

a,b,c = [1,2,3]
a,b,c=(1,2,3)
(a,b,c)=1,2,3
(a,b,c)=[1,2,3]
a,b,c=1,2,3

所謂序列賦值,指元組、列表這樣的序列可以一次性對序列長度相等的變量進行賦值。數值必須相等。如下面的就要報錯:

a,b=1,2,3
ValueError: too many values to unpack (expected 2)   

小技巧1:交換兩變量的值:

a = 1
b = 1
a,b =b,a		#完成a,b值的交換

小技巧2:依次給變量賦值n個整數

a,b,c,d,e,f = range(6)

小技巧3:如果=兩邊長度不相等怎麼處理呢?處理如下:
給需要單獨處理的變量前加上*,此時在賦值時如果不能對應,那麼就會通過將一個列表賦值給該變量,列表中的內容爲按序多出來的對象或者空列表

a,b,c=1,2,3,4		#會報錯
a,b,*c=1,2,3,4				#c爲[3,4],a,b正常賦值
a,*b,c=1,2,3,4				#b爲[2,3],a,c正常賦值
*a,b,c=1,2,3,4				#a爲[1,2],b,c正常賦值
a,b,c,d,*e=1,2,3,4			#e將得到一個空列表

2. 多目標賦值

就是對多個變量直接賦予一個初始值,如在程序開始前給多個計數器變量賦值爲0:

a=b=c=d=e=0

此種方式賦值需要注意列表的可變性。

3. 增強賦值語句

截圖如下了:
解釋一個例子,其他都類似:

X += Y 本質是 X = X + Y,先求X+Y的和,再將其賦值給X

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章