日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础】为什么更改列表'y'也会更改列表'x'?

發布時間:2025/3/8 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】为什么更改列表'y'也会更改列表'x'? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看一段代碼:

x?=?[] y?=?x y.append(10) print(y) print(x)

上面這段代碼的輸出結果如下:

[10] [10]

為什么我只是給列表y追加了一個元素,而列表x也改變了???

產生這樣的結果有兩個原因:

(1)變量只是指向具體對象的名稱,當在執行y=x語句時,并不會為列表創建一個副本,而只是創建了一個新變量y指向x所指向的同一個對象。這也就是說只存在一個對象(列表),x和y都只是對它的引用。

(2)列表屬于mutable(可變)對象,這意味著可以改變它的內容。

在調用append()之后,這個可變對象的內容由[]變為[10]。由于兩個變量都指向同一對象,因此使用任何一個名稱所訪問到的都是修改后的值[10]。

我們再來看一段代碼:

x?=?5 y?=?x x?=?x?+?1 print(x) print(y)

上面這段代碼的輸出結果為:

6 5

通過前面的學習,輸出結果好像不應該是一樣的嗎???

當然不!因為整數是immutable(不可變)對象,當我們執行x=x+1語句時,我們并不是改變5這個對象的值,而是創建一個新的對象(整數6)并將其賦值給x(也就是改變了x所指向的對象)。在賦值之后我們就有了兩個對象(整數6和5)以及分別指向它們的兩個變量(x指向6而y指向5)。

總結

1.如果我們有一個可變對象(list等),我們可以使用某些特定的操作來改變它,所有指向它的變量都會顯示它的改變

2.如果我們有一個不可變對象(int等),所有指向它的變量都將顯示相同樣的值,只要是會改變這個值的操作都將總是返回一個新的對象

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯

獲取一折本站知識星球優惠券,復制鏈接直接打開:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python基础】为什么更改列表'y'也会更改列表'x'?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。