1樓:必能
ython建立的每乙個變數都是乙個物件,python會管理變數的生命週期。
一次新的賦值,將建立乙個新
內的對容象,即使檔名相同,變數的標識也不相同。
例如 : x = a
print id(a)
x = a
print id (a)
你會看出兩者的內部標識並不相
從此處不難理解 ,字串是不可變的。字串的方法,只是新建的乙個物件,乙個新的字串
2樓:有名大卒
在python中,dict內儲存的是tuple型別,也就是用小括號包圍的,tuple型別的變數是不可以修改的
python中的可變資料型別和不可變資料型別的區別
3樓:匿名使用者
上面就是我遇到的問題,按照我的理解,featlabel這個列表經過函式呼叫後值應該還是空的,如果普通的引數,我的這種理解是完全正確的,但是為什麼列表featlabel會跟著改變呢?於是我聯想到了java裡面的像string這種引用資料型別,貌似他們有幾分相似之處。好了,問題說到這,接下來說一下問題的解決。
在python中的資料可以分為可變資料型別和不變資料型別。
可變資料型別:
像tuple,list,dict之類的變數就是可變資料型別,變數名儲存的是乙個位址,該位址指向乙個具體的物件,並且不管對變數的值即物件做怎麼樣的操作,都不會改變變數名儲存的位址。下面是乙個例子:
結果如下:
['hello', [1, 2, 3]]
39593224
可見,我們把列表作為引數傳入乙個函式時,在函式內我們對該列表進行了一些改變,由於變數儲存的位址沒有變(在函式內部和函式外部都是39593224),所以就算我們沒有故意通過return語句把該列表傳遞出來,該列表還是會在函式執行結束後跟著改變的。
不變資料型別:
不變資料型別的物件一旦發生改變,就會在記憶體中開闢乙個新的空間用於儲存新的物件,原來的變數名就會指向乙個新的位址。舉個例子:
def fun(labels):
labels = 'world'
print(id(labels))
if __name__ == '__main__':
labels = 'hello'
fun(labels)
print(labels, '\n', id(labels))
結果如下:
38578360
hello
39220984
python 中提到字串是不可變的,但是字串方法不就改變了字串,這不是矛盾了,求解答?
4樓:雙耳失明
python建立的每乙個bai變數都是du乙個物件,python會管理變數zhi的生命週期。
一次新dao的賦值,將建立乙個版新的物件,即使檔名相權同,變數的標識也不相同。
例如 : x = a
print id(a)
x = a
print id (a)
你會看出兩者的內部標識並不相
從此處不難理解 ,字串是不可變的。字串的方法,只是新建的乙個物件,乙個新的字串
5樓:匿名使用者
沒有改變字串,而是新建了乙個字串物件然後返回這個物件
軟體測試中,python可變資料型別和不可變資料型別?
6樓:草原上之狼
不可變資料型別抄的就是記憶體中不管有襲多少個引用
bai,相同的對du象只佔用了一塊內zhi存,但是它的缺點就是dao當需要對變數進行運算從而改變變數引用的物件的值時,由於是不可變的資料型別,所以必須建立新的物件,這樣就會使得一次次的改變建立了乙個個新的物件,不過不再使用的記憶體會被垃圾**器**。
其實其他語言,比如java也有類似的功能,就是一些基礎的數字,例如前256個,都是固定在靜態區的某個位置的,而不會隨著指標變數的變化,而導致所指向的位址變化。
python判斷字串中是否含有英文
使用isalpha 方法來進行判斷。python isalpha 方法檢測字串是否只由字母組成。如果字串至少有乙個字元並且所有字元都是字母則返回 true,否則返回 false。isalpha 方法要檢測的字元。它可以是乙個有效的字元 被轉換為 int 型別 也可以是 eof 表示無效的字元 擴充套...
c中字串為什麼有兩種形式,c中字串為什麼有兩種形式?cstyle和string有什麼區別?
c style 是乙個指標,或者char陣列,字串的末尾有 0字元 string是乙個stl中的類,用於處理字串,string有乙個方法可以返回乙個c style指標 string中還包含了很多處理字串需要的方法,一般不最強最快效率的情況下用string不容易出錯 c style 是最原始的,位元組...
輸入字串,將字串中的字母所有字元按ASCII碼公升序排列後輸出
include int main include stdio.h include stdlib.h int cmp char const void a,const void b int main 這是用快速排序做的 這就是乙個排序問題嘛 c語言 輸入任意長度的字串,將該字串中的字元按ascii碼值公...