列表和元組區(qū)別
元組和列表最大的區(qū)別就是,可以任意修改列表中的元素,可以任意插入或者刪除一個元素垮卓,但對于元組是不行的。
另外一個明顯區(qū)別是师幕,創(chuàng)建列表時用的是中括號粟按,創(chuàng)建元組大部分時候用的小括號。如果是:
>>>temp = (1)
>>>type(temp)
<class 'int'>
發(fā)現(xiàn)temp還是int類型霹粥,改為:
>>>temp = 1, 2, 3
>>>type(temp)
<class 'tuple'>
沒有小括號钾怔,temp還是元組,所以逗號才是關鍵蒙挑,想要建立一個只有一個元素的元組宗侦,必須加上逗號:
>>>temp = (1,)
>>>type(temp)
<class 'tuple'>
再舉個例子:
>>>8 * (8)
64
>>>8 * (8,)
(8, 8, 8, 8, 8, 8, 8, 8)
關于列表分片“拷貝”概念
利用分片創(chuàng)建列表的拷貝與利用“賦值”創(chuàng)建新列表:
>>>list1 = [1, 2, 3, 4, 5]
>>>list2 = list1[:]
>>>list2
[1, 2, 3, 4, 5]
>>>list3 = list1
>>>list3
[1, 2, 3, 4, 5]
看似list2和list3沒有區(qū)別,用一下翻轉排序:
>>>list1.reverse()
>>>list1
[5, 4, 3, 2, 1]
>>>list2
[1, 2, 3, 4, 5]
>>>list3
[5, 4, 3, 2, 1]
可以看到忆蚀,使用分片方式得到的拷貝list2是真正的拷貝一個新列表矾利,list3的方式只是為一個列表指定另一個名字的做法,向同一個列表增加了一個新標簽而已馋袜。
更新和刪除元組
元組不能直接修改其中的元素男旗,但是可以通過間接的方法,分片拷貝至新元組欣鳖,然后拼接察皇,例如:
>>>fruit = ('apple', 'banana', 'orange', 'lemon')
>>>fruit = fruit[:2] + ('peach',) + fruit[2:]
>>>fruit
('apple', 'banana', 'peach', 'orange', 'lemon')
注意中間插入的也是元組('peach',),如果單單是一個字符串'peach'是不行的泽台。同理什荣,刪除一個元素可以用:
>>>fruit = fruit[:2] + fruit[3:]
>>>fruit
('apple', 'banana', 'orange', 'lemon')
可以用del語句刪除整個元組