更改乙個列表有許多方法
如 t=[1,2,3,4] temp=t[1:3] 則temp=[2,3] 不包括下標為3的元素
如果切片操作符出現在左側 可以直接更新列表中元素
如t[1:3]=[『a』,』b』] 則t=[1,』a』,』b』,4]
切片操作會新建乙個列表
若定義函式
def
bad_deleted_head
(l):
l=l[1:]
若呼叫該函式
bad_deleted_head(t)
列表並沒有發生變化,即t=[1,2,3,4]
《像計算機科學家一樣思考python》中使用此例並作以解釋:切片操作會新建乙個列表,而複製操作會讓t引用指向這個新的列表,但這些操作對呼叫者沒有影響。在函式的開始t和nums指向同乙個列表。在函式最後nums指向乙個新的列表,但t仍舊沒有改變
書中也給出乙個解決方案 即不修改原列表,返回乙個新列表
def
tail
(l):
return l[1:]
需注意的地方是,在不使用函式,直接呼叫語句t=t[1:],切片成功,t更新為去掉原來首元素的列表
x=t.pop(1) #刪除下標1的元素並返回該元素的值
y=t.pop() #刪除列表尾元素並返回該元素的值
2)使用del 操作符,返回none,該操作符可以對列表切片從而刪除多個元素
del t[1:3] #刪除t列表下標範圍[1,3)的元素
del t[0] #刪除t列表下標為1的元素
3)使用remove(x),需已知被刪除元素的值
t.remove(1) #刪除t中值為1的元素
繼續思考使用函式修改原列表的問題
若定義函式
def
deleted_last(l)
l.pop()
使用函式deleted_last(t),傳入的列表被更改,即t=[1,2,3]
t=[1,2,3]
t=t+[4,5] #更新t=[1,2,3,4,5]
t=t*2 #更新t=[1,2,3,4,5,1,2,3,4,5]
Python易錯點總結
三個單引號 或者雙引號 既可以注釋也可以當作字串。python 中的淺拷貝只拷貝父物件不拷貝子物件,深拷貝父物件子物件全部拷貝。import copy a 1,2,3,4,a b b a c copy.copy a d copy.deepcopy a 5 a 4 c python中的命名方式 參考 ...
Python易錯點總結
1.定義只有乙個元素的元組必須要加逗號,否則只是乙個數.tuple 1,print tuple 2.對於列表和元組,下標值為 1都代表是最後乙個元素的下標,2代表倒數第二個元素的下標,依次類推.print list 1 print tuple 1 3.元組和列表的不同之處在於,元組一經初始化後就不能...
python 易錯點總結
輸入 注意輸入的的資料型別都為字串,輸入的數字也是字串型別,若要進行運算需要轉化為整型或者浮點型1.語法 變數 值 2.交換變數的值 a,b b,a 3.可以賦給變數多個值,以元組形式儲存 a 1,2,3 列印出a的值為 1,2,3 1.按可變不可變分 1.不可變資料型別 數字,字串,元組,傳遞的是...