Python中的xxx+=xxx和xxx=xxx+xxx一些区别及执行过程
生活随笔
收集整理的這篇文章主要介紹了
Python中的xxx+=xxx和xxx=xxx+xxx一些区别及执行过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
預知小知識:
Python中的變量與其他語言稍有差異,如a = 10并不是直接在內存中創建一個變量a其值為10,而是在內存中創建一個a這個a指向這個10,在Python中所有牽扯到等號的均不是值賦值,全都是引用(C的小伙伴可以大致理解為處處是指針)。
示例代碼:
>>> a = 10 >>> b = 10 >>> id(a) 1686269232 >>> id(b) 1686269232以上可以看到變量只要賦值一致,他們在本機中的內存地址都一樣。
+=示例代碼:
# coding:utf-8 num = [88]def demo(nums):nums += nums # 將nums指向的這個地址中的[88]和[88]進行合并print(nums) # 兩個列表合并將會得到[88, 88]demo(num) print(num) # 因為是引用類型num所指向的值已發生改變這里也會得到[88, 88]pycharm中執行結果:[88, 88][88, 88] # coding:utf-8 num = [88]def demo(nums):nums = nums + nums # 將nums所指向的[88]和[88]合并讓demo中的零時變量nums重新指向[88, 88]print(nums) # 這里會輸出新的指向結果[88, 88]demo(num) print(num) # demo中的nums為零時指向所以不會影響num的值pycharm中執行結果:[88, 88][88]總結:
雖然我們常使用xxx+=xxx或xxx=xxx+xxx得到的結果基本是一致的,但是底層執行還是有一些差異的,所以xxx+=xxx不完全等價于xxx=xxx+xxx。
小知識:
python的值類型和引用類型
值類型:
包含:字符串、元組、數值,本身不允許被修改
引用類型:
包含:列表、字典,本身允許修改(不能作用于字典的key,因為會進行一個hash過程可變參數類型是不行的)
轉載于:https://www.cnblogs.com/weibgg/p/10786958.html
總結
以上是生活随笔為你收集整理的Python中的xxx+=xxx和xxx=xxx+xxx一些区别及执行过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: x79服务器主板装系统,【小白经历分享】
- 下一篇: g41 计算机主板维修,解决方法:G41