1. 程式人生 > >python之list、tuple、dict、set對比

python之list、tuple、dict、set對比

這兩天開始學習了下Python,在此灰常感謝廖雪峰老師關於Python的系列文章。下面,是我在學習過程中遇到的標題上的四個內建屬性時,覺得理一理,不然覺得會“思想錯亂”的。

1. List

list是Python內建的一種資料型別,它是有序的而且狀態可以改變,例如可以對其進行增刪改查的操作。
示例如下:首先建立一個list列表,要清楚list的格式,不然會和下面的tuple等等搞混,話說我已經有點…………….

>  list = ['a', 'b', 'c'] 

通過append新增一條資料:

>  list.append('d')
>  ['a', 'b'
, 'c','d']

通過insert在列表指定位置插入一條資料:

> list.insert(1,'e')
>   ['a', 'e' , 'b', 'c','d'] 

通過pop可以刪除列表最後一條資料,也可以通過指定位置,刪除該位置元素,如pop(i)

list.pop()
[‘a’, ‘e’ , ‘b’, ‘c’]
list.pop(1)
[‘a’, ‘b’, ‘c’]

可以通過索引位置,替換指定位置的元素:

 list[1]='k'      
 ['a' , 'k' , 'c' ]

2.tuple

tuple是Python中另一種有序列表,元組。但是tuple不像list,tuple初始化後便不能再隨意修改了。除非元素裡有巢狀list列表,下面會舉例說……………….

tuple書寫格式:

list = ('a', 'b', 'c'

注意:如果列表中只有一個元素,則須注意:

>>> t = (1)
>>> t
1

定義的並不是tuple,而是數字1,所以要避免這種錯誤,使用如下格式:

>>> t = (1,)
>>> t
(1,)

前面有說可以通過巢狀list列表,來實現修改tuple列表:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1
] = 'Y' >>> t ('a', 'b', ['X', 'Y'])

3.dict

dict是Python內建的一種元素,使用鍵-值(key-value)儲存,具有極快的查詢速度。

dict書寫格式:

>>> grade = {'kk': 95, 'll': 75, 'kl': 85}

通過指定key便能找到對應的值:

>>> grade['kk']
95

通過key新增元素:

>>> d['kong'] = 67
>>> d['kong']
67

通過pop(key)的方法刪除匹配的key-value:


>>> d.pop('kk')
95

4.set

set和dict類似,也是一組key的集合,但不儲存value。在set中,沒有重複的key。
建立一個set,需要提供一個list作為輸入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

通過add(key)方法可以新增元素到set中,基於set特性,如果新增重複元素,則不會有效果

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

通過remove(key)方法可以刪除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

最後放個大招,就是對於不可變的物件,即便存在replace屬性,但是也不能改變初始值,但是會建立一個新的物件來儲存替換的值,如下:

>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'