python中的幾個比較重要的內容(初學者容易模糊)
1、python中自動化記憶體管理
a=10000
b=20000
a= a + b #發生了什麼事?(將30000賦值給a,10000將被**釋放)
c = a #發生了什麼事? (a和c同時繫結在30000同一物件上)
python中 關聯/繫結/引用的含義:
在python中,變數沒有型別
關聯/繫結/引用都是指乙個變數和乙個物件的關聯關係
*python的記憶體管理是自動化的, 即每個物件會記錄幾個變數引用自身,當引用的數量為0時此物件被銷毀,此種自動化記憶體管理的方式叫引用計數
2、continue和break的區別:
continue是用於迴圈語句(while,for)中,不再執行本次迴圈continue之後的語句,重新開始一次新的迴圈。 在while語句中執行continue,將會直接跳轉到while語句的真值表示式處重新判斷迴圈條件。在for迴圈語句中執continue語句,將會從可迭代物件中取下乙個元素,繫結變數後再次進行迴圈
break用於迴圈語句(while,for語句)中,用來終止當前迴圈語句的執行,break語句執行後,此迴圈語句break之後的語句將不再執行。break語句通常和if語句組合使用 break語句終止迴圈時else子句的語句將不會執行。break語句只能終止當前迴圈語句的執行,如果迴圈巢狀時,不會跳出巢狀的外重迴圈。
3、python中淺拷貝和深拷貝的含義
淺拷貝(shallow copy)
是指在複製過程中,只複製一層變數,不會複製深層變數繫結的物件的複製過程
示意:
>>> l = [3.1,3.2]
>>> l1 = [1,2,l]
>>> l2 = l1.copy() #淺拷貝
>>> print(l1)
[1, 2, [3.1, 3.2]]
>>> print(l2)
[1, 2, [3.1, 3.2]]
>>> l2[2][0] = 3.14
>>> l2
[1, 2, [3.14, 3.2]]
>>> l1
[1, 2, [3.14, 3.2]]
>>> l
[3.14, 3.2]
深拷貝(deep copy):
賦值物件及物件關聯的物件一起複製過程叫深拷貝
示例: >>> import copy
>>> l = [3.1,3.2]
>>> l1 = [1,2,l]
>>> l2=copy.deepcopy(l1)
>>> l2[2][0] = 3.14
>>> l1
[1, 2, [3.1, 3.2]]
>>> l2
[1, 2, [3.14, 3.2]]
>>> l
[3.1, 3.2]
4、幾個小知識點(個人覺得比較實用)
① 字串的文字解析方法:
s.split(sep=none) 將字串,使用sep作用分隔符分割s字串,返回分割後的字串列表,當不給定引數時,用空白字元作為分隔符分割。
s.join(iterable) 用可迭代物件中的字串,返回乙個中間用s進行分割的字串。
②列表推導式:
是用可迭代物件建立列表的表示式
作用:用簡易方法生成列表
語法:
[表示式 for 變數 in 可迭代物件]
>>> l = [i**2 for i in range(1,10)]
>>> l
[1, 4, 9, 16, 25, 36, 49, 64, 81]
或
[ 表示式 for 變數 in 可迭代物件 if 真值表示式 ]
l = [i for i in range(1,10) if i%2==1]l [1, 3, 5, 7, 9]
③列表推導式的巢狀:
語法:
[表示式 for 變數1 in 可迭代物件1 if 真值表示式1
for 變數2 in 可迭代物件2 if 真值表示式2 …]
示例:將[10,20,30]中的元素與列表[1,2,3]元素分別相乘,將得到的元素放於乙個列表中
l= [x +y
for x in [10,20,30]
for y in [1,2,3]
print(l)]
#[11,12,13,21,22,23.31.32.33]
python 淺拷貝 深拷貝
直接賦值 其實就是物件的引用 別名 淺拷貝 copy 拷貝父物件,不會拷貝物件的內部的子物件。深拷貝 deepcopy copy 模組的 deepcopy 方法,完全拷貝了父物件及其子物件。usr bin python import copy a 1,2,3,4,a b 原始物件 b a 賦值,傳物...
python深拷貝 淺拷貝
在python中,物件賦值實際上是物件的引用。當建立乙個物件,然後把它賦給另乙個變數的時候,python並沒有拷貝這個物件,而只是拷貝了這個物件的引用 一般有三種方法,alist 1,2,3,a b 1 直接賦值,傳遞物件的引用而已,原始列表改變,被賦值的b也會做相同的改變 alist 1,2,3,...
python 深拷貝 淺拷貝
淺拷貝是對於乙個物件的頂層拷貝 通俗的理解是 拷貝了引用,並沒有拷貝內容 深拷貝是對於乙個物件所有層次的拷貝 遞迴 拷貝字典 值相當於鍵的引用 所以copy.copy 為淺拷貝 淺拷貝對不可變型別和可變型別的copy不同 copy.copy對於可變型別,會進行淺拷貝 copy.copy對於不可變型別...