python學習筆記 使用dict和set

2021-07-11 20:15:19 字數 3421 閱讀 1792

python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。

1.定義字典

字典由多個鍵及與其對應值構成的鍵-值對組成,鍵與值之間用(:)隔開。

>>>dict1 = {}   # 建立乙個空字典

>>>dict2 = # 建立字典

注意,字典的鍵是唯一的,但值並不唯一

2.dict函式(型別)

>>>items = [('name', 'gumby'), ('age', 42)]

>>>dict3 =dict(items)

>>>print dict3

輸出結果為: # 轉化為字典形式。

也可以通過關鍵字建立字典,看下面**

>>>dict4 = dict(name = 'gumby', age = 42)

>>>print dict4

輸出結果和上面一樣。

3.字典的基本操作

>>>a = [1, 2, 3, 4, 5, 6]

>>>b = [3, 4, 5, 6, 7, 8]

>>>c={}

>>>d =

>>>print d['y'] # 返回字典中'y'對應的值

>>>print type(d) # 求字典的型別

>>>print len(c) # 返回字典c中鍵值對的數量

>>>print 'x' in d # true ,檢查'x'是否在字典中,查詢的是鍵而不是值

4.字典的清除方法——clear方法

清除字典中的所有項

>>>d = 

>>>d.clear()

>>>print d

輸出結果: {}

舉個例子,假設要根據同學的名字查詢對應的成績,如果用list實現,需要兩個list:

names = ['michael', 'bob', 'tracy']

scores = [95, 75, 85]

給定乙個名字,要查詢對應的成績,就先要在names中找到對應的位置,再從scores取出對應的成績,list越長,耗時越長。

如果用dict實現,只需要乙個「名字」-「成績」的對照表,直接根據名字查詢成績,無論這個表有多大,查詢速度都不會變慢。用python寫乙個dict如下:

>>> d = 

>>> d['michael']

95

由於乙個key只能對應乙個value,所以,多次對乙個key放入value,後面的值會把前面的值沖掉:

>>> d['jack'] = 90

>>> d['jack']

90>>> d['jack'] = 88

>>> d['jack']

88

如果key不存在,dict就會報錯:

>>> d['thomas']

traceback (most recent call last):

file "", line 1, in keyerror: 'thomas'

要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在:

>>> 'thomas' in d

false

二是通過dict提供的get方法,如果key不存在,可以返回none,或者自己指定的value:

>>> d.get('thomas')

>>>

(注意:返回none的時候python的互動式命令列不顯示結果。故上面沒有輸出)

>>> d.get('thomas', -1)

-1

要刪除乙個key,用pop(key)方法,對應的value也會從dict中刪除:

>>> d.pop('bob')

75>>> d

請務必注意,dict內部存放的順序和key放入的順序是沒有關係的。

dict沒有順序,顯示的順序不是內部順序。

給字典新增鍵值,用setdefault方法

>>> d = dict(name = 'gumby', age = 42)

>>> d.setdefault('a',2) # 給字典d新增乙個鍵值項,如果字典中以存在這個鍵,但該語句無效。

>>> print d

輸出:

python 字典的一鍵多值,即乙個鍵對應多個值,list作為dict的值 值允許重複

>>> d1={}  

>>> key=1

>>> value=2

>>> value=2

>>> print d1

輸出

1.set和dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。

要建立乙個set,需要提供乙個list作為輸入集合:

>>> s = set([1, 2, 3])

>>> s

set([1, 2, 3])

注意,傳入的引數[1, 2, 3]是乙個list,而顯示的set([1, 2, 3])只是告訴你這個set內部有1,2,3這3個元素,顯示的不表示這是乙個list。

2.重複元素在set中自動被過濾:

>>> s = set([1, 1, 2, 2, 3, 3])

>>> s

set([1, 2, 3])

3.通過add(key)方法可以新增元素到set中,可以重複新增,但不會有效果:

>>> s.add(4)

>>> s

set([1, 2, 3, 4])

>>> s.add(4)

>>> s

set([1, 2, 3, 4])

4.通過remove(key)方法可以刪除元素:

>>> s.remove(4)

>>> s

set([1, 2, 3])

5.set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作:

>>> s1 = set([1, 2, 3])

>>> s2 = set([2, 3, 4])

>>> s1 & s2

set([2, 3])

>>> s1 | s2

set([1, 2, 3, 4])

Python學習筆記之對映型別字典(dict)

建立字典 工廠方法dict fdict dict x 1 y 2 使用元組,其中每個元素為列表 fdict fdict dict x 1 y 2 使用列表,其中每個元素為元組 fdict 使用內建方法fromkeys 建立乙個 預設 字典,字典中元素具有相同的值 預設為none fdict from...

python 中字典(dic)的用法

dic 字典使用key values方式,也就是鍵 值的方式 print dic james for key in dic 取出字典中的key值 print key for key in dic.keys 也可以通過這種將key值取出來 print key for values in dic 這說明...

python中字典 dic的操作

d 獲取成員 print d name python的優雅 有就返回,沒有預設返回none,可以設定預設值 print d.get nm 預設值 設定成員 存在就更新 d age 30 不存在時就新增 d weight 80 更新,存在的鍵就更新,不存在的鍵就新增 d.update 刪除元素 del...