Python基礎刻意練習:字典與集合

本系列定位爲複習筆記,某些內容並未提及。
在此記錄一些典型疑問和我在學習中的問題或經常遺忘的細節,也會添加一些覺得有意思的部分(其實就是隨心所欲
內容主要使用代碼進行傳達

字典(哈希表)的創建與索引訪問

字典以"關鍵字"爲索引,關鍵字可以是任意不可變類型,通常用字符串或數值。
字典是 Python 唯一的一個 映射類型,字符串、元組、列表屬於序列類型。

字典的關鍵字不可變,這是由哈希的特質決定的,只有不可修改的變量才能進行哈希 如

>>> hash(2)
2
>>> hash('asdsdqawfa')
4159286438170111909
>>> hash((1,2,3))
2528502973977326415
>>> hash([1,2,3])
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    hash([1,2,3])
TypeError: unhashable type: 'list'

創建

dict1 = {'李寧': '一切皆有可能', '耐克': 'Just do it', '阿迪達斯': 'Impossible is nothing'}
print('耐克的口號是:', dict1['耐克'])  
# 耐克的口號是: Just do it

dict函數創建

dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs
dict(iterable) -> new dictionary initialized as if via:

特別的:

dict4 = dict([('apple', 4139), ('peach', 4127), ('cherry', 4098)])
print(dict4)  # {'cherry': 4098, 'apple': 4139, 'peach': 4127}

dict4 = dict((('apple', 4139), ('peach', 4127), ('cherry', 4098)))
print(dict4)  # {'peach': 4127, 'cherry': 4098, 'apple': 4139}

字典內置方法:

  • dict.fromkeys(seq[, value]) 用於創建一個新字典,以序列 seq 中元素做字典的鍵,value 爲字典所有鍵對應的初始值。
  • dict.keys()返回一個可迭代對象,可以使用 list() 來轉換爲列表。
  • dict.values()返回一個迭代器,可以使用 list() 來轉換爲列表,列表爲字典中的所有值。
  • dict.items()以列表返回可遍歷的(鍵, 值) 元組數組。
  • dict.get(key, default=None)返回指定鍵的值,如果值不在字典中返回默認值。
  • key in dict in 操作符用於判斷鍵是否存在於字典中,如果鍵在字典 dict 裏返回true,否則返回false。而not in操作符剛好相反,如果鍵在字典 dict 裏返回false,否則返回true。
  • dict.clear()用於刪除字典內所有元素。
  • dict.copy()返回一個字典的淺複製。

注意直接賦值與copy淺複製的區別:

dict1 = {'user': 'lsgogroup', 'num': [1, 2, 3]}
dict2 = dict1  
dict3 = dict1.copy()  

print(id(dict1))  # 148635574728
print(id(dict2))  # 148635574728
print(id(dict3))  # 148635574344
  • dict.pop(key[,default])刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key 值必須給出。 否則,返回default 值。
  • del dict[key] 刪除字典給定鍵 key 所對應的值。
  • dict.popitem()隨機返回並刪除字典中的一對鍵和值,如果字典已經爲空,卻調用了此方法,就報出KeyError異常。
  • dict.setdefault(key, default=None)和get()方法 類似, 如果鍵不存在於字典中,將會添加鍵並將值設爲默認值。
  • dict.update(dict2)把字典參數 dict2 的 key/value(鍵/值) 對更新到字典 dict 裏。

集合:

集合元素具有互異性與唯一性,可以用來去掉列表中重複的元素等操作

創建:

直接把一堆元素用花括號括起來{元素1, 元素2, …, 元素n},重複元素在set中會被自動被過濾。

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)  # {'banana', 'apple', 'pear', 'orange'}
  • 使用set(value)工廠函數,把列表或元組轉換成集合。
  • 可以使用for把集合中的數據一個個讀取出來。
  • 可以通過in或not in判斷一個元素是否在集合中已經存在

內建方法:

在這裏插入圖片描述

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