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'])

具體原因,請移步廖雪峯老師的其中一篇文章–使用list和tuple


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'

具體請移步廖雪峯老師的其中一篇文章–使用dict和set

發佈了30 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章