dict
- dict的定義
dict
是一組無序的,key
不可變、不重復的,key-value
一 一對應的數據集>>> d = {'key':98,"baby":54} >>> d {'key': 98, 'baby': 54}
- dict的存儲方式
dict是
key-value存儲方式,即通過
key直接找到
value`的內存地址>>> d['baby'] 54 >>> d['baby']=98 >>> d {'key': 98, 'baby': 98}
- dict與list的查找方式
dict
的查找方式是通過查找key
,然后由key
指向value
的內存地址獲得value
的值list
的查找方式是通過一個一個查找獲得相應的數據
- dict相對于list的優缺點
-
dict
的缺點:占用內存空間大 -
dict
的優點:查找速度快,不會隨key
的增多而變慢
-
- 判斷元素存在的方法:
in
關鍵字與dict
的get()
方法-
in
>>> 'tom' in d False >>> 'peter' in d True >>> d {'peter': 88, 'lu': 33, 'baby': 99, '99': 80}
-
get(key)
注意哦:不存在>>> d {'peter': 88, 'lu': 33, 'baby': 99, '99': 80} >>> d.get('baby') 99 >>> d.get('no') >>> d.get('no') is None True
key
值get()
返回None
,交互模式不顯示 -
get(key,x)
嘿嘿嘿,你想打印什么提示都可以>>> d.get('bob','不存在') '不存在' >>> d.get('bob',100) 100
-
-
dict
元素的添加:- 直接對一個
key
定義一個value
>>> d {'peter': 88, 'lu': 33, 'baby': 99} >>> d['tom']=[98,89] >>> d {'peter': 88, 'lu': 33, 'baby': 99, 'tom': [98, 89]}
-
append(value)
注意:>>> d['tom'].append(99) >>> d['tom'] [98, 89, 99]
append()
對單個的數據類型無效>>> d['baby'].append(99) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'int' object has no attribute 'append'
- 直接對一個
-
dict
元素的刪除:pop(key)
-
pop(key)
:刪除對應的key
>>> d {'peter': 88, 'lu': 33, 'baby': 99, '99': 80} >>> d.pop('99') 80 >>> d {'peter': 88, 'lu': 33, 'baby': 99}
-
set
-
set
的定義
set是一組無序、不重復的數據集,所有元素都是key
(即不可變對象)>>> d {'peter': 88, 'lu': 33, 'baby': 99} >>> s = set(d) >>> s {'lu', 'peter', 'baby'}
-
set
的元素添加與刪除:add(key)
與remove(key)
- 添加
>>> s {'lu', 'peter', 'baby'} >>> s.add('bob') >>> s {'lu', 'peter', 'bob', 'baby'}
- 刪除
>>> s {'lu', 'peter', 'bob', 'baby'} >>> s.remove('bob') >>> s {'lu', 'peter', 'baby'}
- 添加
不可變對象
- 常見的不可變對象:
string
、int
、float
和tuple
等 - 常見的可變對象:
list
---(sort()
)>>> m ['c', 't', 'r'] >>> m.sort() >>> m ['c', 'r', 't']
- 對于不可變對象
String
的‘可變’的解釋
從上面我們可以看出來,>>> str = 'bad' >>> str.replace('a','A') 'bAd' >>> str 'bad'
str
的內容并沒有改變,也就是說replace()
做的是新建了一個替換后字符串
key
-
key
只能是不可變對象,但不能是tuple
,因為tuple
中可以包含list
,即包含了可變對象!