三. 數據類型:集合類型 + 映射類型

集合類型

  1. set 持有一系列元素,這一點和 list 很像,但是set的元素沒有重複,而且是無序的,這點和 dict 的 key很像。
  2. set存儲的元素和dict的key類似,必須是不變對象

藉助list創建set,重複元素會被合併。
s = set([1,2,34,1]) -> {1, 2, 34}

s.add(11) -> {1,2,34,11}
s.add(1) -> {1,2,34,11} 重複元素不會添加
s.remove(1) -> {2,34,11} 移除元素,如果元素不存在會報錯

映射類型(字典表 dict)

  1. dict的第一個特點是查找速度快,無論dict有10個元素還是10萬個元素,查找速度都一樣。而list的查找速度隨着元素增加而逐漸下降。不過dict的查找速度快不是沒有代價的,dict的缺點是佔用內存大,還會浪費很多內容,list正好相反,佔用內存小,但是查找速度慢。
  2. dict的第二個特點就是存儲的key-value序對是沒有順序的
  3. dict的第三個特點是作爲 key 的元素必須不可變
  4. Key – vlue存儲結構
  5. 包含任意對象的無序集合
  6. 可變長度,異質,可任意嵌套
  7. 對象引用表 hash table

鍵只能是不可變的類型。
emplo = {‘name’:‘tom’,‘age’:23,‘salary’:333.55} –> {‘name’: ‘tom’, ‘age’: 23, ‘salary’: 333.55}
books = dict(title=‘Python’,author=‘Tom’,price=59.00) -> {‘title’: ‘Python’, ‘author’: ‘Tom’, ‘price’: 59.0}

image.png
image.png

book[‘key’] 元素不存在時會拋異常
book.get(‘key’) 元素不存在時返回None
book.get(‘key’,’not exist’) 元素不存在時返回’not exist’

book.keys() –> 視圖(dict_keys) 得到所有的鍵。
list(book.keys()) -> 轉換爲list

>>> for val in books.values(): 得到字典表直接遍歷
...  print(val)
...
Python
Tom
59.0
>>>

>>> for (k,v) in books.items():
...  print('{} -> {}'.format(k,v))
...
title -> Python
author -> Tom
price -> 59.0
>>>


常用操作

course = { … }
c = course.copy() 複製
c.clear() 清空
c[‘key’] = ‘newValue’ 修改
c.update(c1) 更新併合並
del c[‘key’] 刪除
c.pop(‘key’) 彈出(刪除並返回值),找不到拋異常
c.pop(‘key’,None) 彈出(刪除並返回值),找不到返回None
c.popitem(‘key’) 彈出整個鍵值對

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章