dict: python內建字典
ps: dict的key必須是不可變物件,在python中,字串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key
把資料放入dict的方法,除了初始化時指定外,還可以通過key放入: d['adam'] = 67
由於乙個key只能對應乙個value,所以,多次對乙個key放入value,後面的值會把前面的值沖掉
要避免key不存在的錯誤,有兩種辦法:
一是通過in判斷key是否存在
>>> 'thomas' in d
false
二是通過dict提供的get()方法,如果key不存在,可以返回none,或者自己指定的value.(返回none的時候python的互動環境不顯示結果)
>>> d.get('thomas')
>>> d.get('thomas', -1)
-1刪除乙個key,用pop(key)方法,對應的value也會從dict中刪除
和list比較,dict有以下幾個特點:
查詢和插入的速度極快,不會隨著key的增加而變慢;
需要占用大量的記憶體,記憶體浪費多。
而list相反:
查詢和插入的時間隨著元素的增加而增加;
占用空間小,浪費記憶體很少。
所以,dict是用空間來換取時間的一種方法。
set: 一組key的集合,但不儲存value。在set中,沒有重複的key。
建立乙個set,需要提供乙個list作為輸入集合
>>> s = set([1, 2, 3])
>>> s
重複元素在set中自動被過濾
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
通過add(key)方法可以新增元素到set中,可以重複新增,但不會有效果
通過remove(key)方法可以刪除元素
set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作
set的原理和dict一樣,同樣不可以放入可變物件
小結:
list 是中括號 classmates = ['michael', 'bob', 'tracy']
tuple 是小括號() classmates = ('michael', 'bob', 'tracy')
dict 是大括號{} d =
set 是大括號{} d =
ps:不可變物件:
str是不變物件,而list是可變物件。
對於可變物件,比如list,對list進行操作,list內部的內容是會變化的
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']
對於不變物件來說,呼叫物件自身的任意方法,也不會改變該物件自身的內容。相反,這些方法會建立新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變的
>>> a = 'abc' >>> a = 'abc'
>>> a.replace('a', 'a') >>> b = a.replace('a', 'a')
'abc' >>> b
>>> a 'abc'
'abc' >>> a
'abc'
python中的集合dict set
dict型別 我們已經知道,list 和 tuple 可以用來表示順序集合,例如,班裡同學的名字以及他們對應的分數 mike aki jack 姓名 98,86,78 對應的分數但是如果要想通過名字找到對應的分數,使用list就不一定方便。如果利用dict就能方便許多,在dict中名字作為key,分...
Python內建字典 dict ,set
dict and set dict 鍵 值 重複新增 set 鍵 key不能重複 對於不變物件來說,呼叫物件自身的任意方法,也不會改變該物件自身的內容。相反,這些方法會建立新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變 python內建了字典 dict的支援,dict全稱dictionar...
python 學習筆記(六) dict,set
dict的第乙個特點是查詢速度快,無論dict有10個元素還是10萬個元素,查詢速度都一樣。而list的查詢速度隨著元素增加而逐漸下降。不過dict的查詢速度快不是沒有代價的,dict的缺點是占用記憶體大,還會浪費很多內容,list正好相反,占用記憶體小,但是查詢速度慢。由於dict是按 key 查...