Python入門3(賦值)


微信公眾號關注我,更多python知識告訴你!

 

【一:*,-1的作用】

給大家兩個例子:

1 a,b,c,d='spam'
2 print(a)
3 print(b)
4 print(c)
5 print(d)
6 a,*b='spam'
7 print(a)
8 print(b)

上面這個例子是*號作用的最就簡單的例子,要區別於C語言中的指針。第六行語句,a賦的是s,b賦的是pam

1 seq='computer'
2 *a,b=seq
3 print(a)
4 print(b)
5 c,d=seq[:-1],seq[-1]
6 print(a)
7 print(b)

上面是-1作用的例子,大家可以自己體會

注意:如果有多個帶星號的名稱,或者如果值少了而沒有帶星號的名稱,以及如果帶星號的名稱自身沒有編寫到一個列表中,都將會引發錯誤

【二:序列賦值】

1 a=1
2 b=2
3 a,b=b,a
4 print(a)
5 print(b)

在這里,右側的原組會自動記住先前的變量值

【三:for循環】

1 L=[1,2,3,4]
2 M=[1,2,3,4]
3 while L:
4     front,L=L[0],L[1:]
5     print(front,L)
6     
7 while M:
8     front,*M=M
9     print(front,M)

由例子可以看出,上下兩段代碼的結果是一樣的,這就是*的作用

1 for all in [(1,2,3,4),(5,6,7,8)]:
2     a,b,c=all[0],all[1:3],all[3]
3     print(a,b,c)

 

【四:append】

1 a=b=[]
2 b.append(42)
3 print(a,b)
4 
5 a=[]
6 b=[]
7 b.append(42)
8 print(a,b)

第一段代碼,因為a和b引用相同的對象,通過b在原處附加值上去,而我們通過a也會看到相同的效果。第二段代碼則有不同的效果。只有append有這個功能

【五:強賦值語句】

強賦值語句類似與C語言中的x+=x,y+=y,但要注意的是Python中沒有x++這樣的運算符

1 s='spam'
2 s+='SPAM'
3 print(s)

當強賦值語句用於字符串時,增強形式會改為執行合並運算

強賦值語句的優點:

1、左側只需計算一次,在x+=x中,x可以是復雜的對象表達式。在增強形式中,則只需計算一次。然而,在完整形式x=x+y中,x出現兩次,必須執行兩次。因此,增強賦值語句通常執行更快。

2.當我們使用增強賦值語句時,Python會自動調用較快的方法

1 a=[1,2,3]
2 b=[1,2,3]
3 a.extend([4,5])
4 b=b+[4,5]
5 print(a)
6 print(b)

在上面這個例子中,上下兩段代碼的結果是一樣的,但是.extend方法更快一點。然后我們再來看下面這個例子

1 a=[1,2,3]
2 a+=[4,5]
3 print(a)

這個例子調用的就是更快速的.extend方法,雖然表面上看不出,但Python內部就是調用更高效的方法的

注意:

1 L=[1,2]
2 M=L
3 L=L+[3,4]
4 print(M,L)
5 
6 L=[1,2]
7 M=L
8 L+=[3,4]
9 print(M,L)

以上兩個例子的差異大家自己體會一下

+=能對列表做原處修改

1 M=L=[1,2]
2 L.append(3)
3 print(M,L)
4 
5 M=L=[1,2]
6 L=L+[3]
7 print(M,L)

再次感受一下append的作用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM