合併字典【使用 update()】

「複製」鍵與值

可以使用 update() 函式,來將一個字典的鍵與值複製到另一個

  1. 字典名稱1 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱1
  3. {鍵1:值1, 鍵2:值2, 鍵3:值3}
  4. 字典名稱2 = {鍵4:值4, 鍵5:值5, 鍵6:值6,}
  5. 字典名稱1.update(字典名稱2) → update()複製
  6. 字典名稱1
  7. {鍵1:值1, 鍵2:值2, 鍵3:值3, 鍵4:值4, 鍵5:值5, 鍵6:值6}
>>> pythons = {
    'Chapman': 'Graham',
    'Cleese': 'John',
    'Gilliam': 'Terry',
    'Idle': 'Eric',
    'Jones': 'Terry',
    'Palin': 'Michael',
    }
>>> pythons
{'Chapman': 'Graham', 'Cleese': 'John', 'Gilliam': 'Terry', 'Idle': 'Eric', 'Jones': 'Terry', 'Palin': 'Michael'}

>>> others = { 'Marx': 'Groucho', 'Howard': 'Moe'}
>>> pythons.update(others)

>>> pythons
{'Chapman': 'Graham', 'Cleese': 'John', 'Gilliam': 'Terry', 'Idle': 'Eric', 'Jones': 'Terry', 'Palin': 'Michael', 'Marx': 'Groucho', 'Howard': 'Moe'}

合併字典有「相同鍵」,最後的字典會勝出

第二個字典與主要合併的字典有相同的鍵時,第二個字典的值會勝出

  1. 字典名稱1 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱2 = {鍵3:值4, 鍵5:值5}
  3. 字典名稱1.update(字典名稱2)
  4. 字典名稱1
  5. {鍵1:值1, 鍵2:值2, 鍵3:值4, 鍵5:值5}
>>> first = {'a': 1, 'b': 2}
>>> second = {'b': 'platypus'}

>>> first.update(second)
>>> first
{'a': 1, 'b': 'platypus'}

刪除

刪除項目【使用 del 與鍵】

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. del 字串名稱['鍵1']
>>> pythons
{'Chapman': 'Graham', 'Cleese': 'John', 'Gilliam': 'Terry', 'Idle': 'Eric', 'Jones': 'Terry', 'Palin': 'Michael', 'Marx': 'Groucho', 'Howard': 'Moe'}

>>> del pythons['Marx']
>>> pythons
{'Chapman': 'Graham', 'Cleese': 'John', 'Gilliam': 'Terry', 'Idle': 'Eric', 'Jones': 'Terry', 'Palin': 'Michael', 'Howard': 'Moe'}

>>> del pythons['Howard']
>>> pythons
{'Chapman': 'Graham', 'Cleese': 'John', 'Gilliam': 'Terry', 'Idle': 'Eric', 'Jones': 'Terry', 'Palin': 'Michael'}

刪除所有項目【使用 clear()】

刪除所有鍵與值【使用 clear()】

  1. 字典名稱.clear()
  2. 字典名稱
  3. {}
>>> pythons.clear()
>>> pythons
{}

空字典【使用 {} 指派給字典名稱】

  1. 字典名稱 = {}
  2. 字典名稱
  3. {}
>>> pythons = {}
>>> pythons
{}

使用 in 來測試鍵

確認字典是否有某個鍵,可使用 in

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. '鍵1' in 字典名稱
  3. True
  4. '鍵4' in 字典名稱
  5. False
>>> pythons = {
    'Chapman': 'Graham',
    'Cleese': 'John',
    'Jones': 'Terry',
    'Palin': 'Michael',
    }
>>> pythons
{'Chapman': 'Graham', 'Cleese': 'John', 'Jones': 'Terry', 'Palin': 'Michael'}

>>> 'Chapman' in pythons
True
>>> 'Palin' in pythons
True
>>> 'Gilliam' in pythons
False

取得

取得一個項目【使用 [鍵]】

指定字典的「鍵」→ 取出對應鍵的「值」

這是最常用的字典功能。要指定字典,及取出對應值的鍵

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱[鍵1]
  3. 值1
>>> pythons = {
    'Chapman': 'Graham',
    'Cleese': 'John',
    'Jones': 'Terry',
    'Palin': 'Michael',
    }
>>> pythons['Cleese']
'John'

指定字典「沒有」的「鍵」→ 例外

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱[鍵4]
  3. 例外
>>> pythons['Cleese']
'John'

>>> pythons['Marx']
Traceback (most recent call last):
  File "<pyshell#91>", line 1, in <module>
    pythons['Marx']
KeyError: 'Marx'

防止「例外」

【方法一】使用 in 來測試鍵

  1. 鍵 in 字典名稱
  2. True/False
>>> 'Marx' in pythons
False

【方法二】取得一個項目:使用 get()

使用特殊的字典函式 get()。要提供字典、鍵,及一個選用的值。

鍵存在 → 使用 get() 取得值

  1. 字典名稱.get(鍵)
>>> pythons = {
    'Chapman': 'Graham',
    'Cleese': 'John',
    'Jones': 'Terry',
    'Palin': 'Michael',
    }

>>> pythons.get('Cleese')
'John'

鍵不存在 → 可另外指定值

  1. 字典名稱.get(鍵, 選用的值)
  2. 選用的值
>>> pythons.get('Marx', 'Not a Python')
'Not a Python'

鍵不存在 → None

  1. 字典名稱.get(鍵)
  2. (得到None,互動式解譯器不會顯示任何東西)
>>> pythons.get('Marx')
>>>

取得所有的「鍵」【使用 keys()】

使用 keys() 取得字典內的所有鍵

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱.keys()
  3. dict.keys([鍵1, 鍵2, 鍵3])
>>> signals = {'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}
>>> signals.keys()
dict_keys(['green', 'yellow', 'red'])

回傳

Python 2:keys() → 回傳一個串列

在 Python 2,keys() 只會回傳一個串列

Python 3:keys() → dict_keys()

  • 在 Python 3,keys() 會回傳 dict_keys()
  • dict_keys(),它是可佚代的鍵資料,很適合用在大型的字典 → 因為它不會浪費時間與記憶體建立及儲存可能用不到的串列

dict_keys 物件轉換成串列【使用 list()】

通常你其實想要一個串列,在 Python 3,必須呼叫 list() 來將 dict_keys 物件轉換成串列

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱.keys()
  3. dict.keys([鍵1, 鍵2, 鍵3])
  4. list( 字典名稱.keys() )
>>> signals = {'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}
>>> signals.keys()
dict_keys(['green', 'yellow', 'red'])

>>> list( signals.keys() )
['green', 'yellow', 'red']

取得所有的「值」【使用 list()】

在 Python 3,需要使用 list()函式來將 values() 與 items() 的結果轉成一般的 Python 串列

取得所有的「值」【使用 list() 及 values()】

以 tuple 的形式回傳每個鍵/值

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱.values()
  3. list( 字典名稱.values() )
>>> signals = {'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}

>>> signals.values()
dict_values(['go', 'go faster', 'smile for the camera'])

>>> list( signals.values() )
['go', 'go faster', 'smile for the camera']

取得所有的「鍵/值」對【使用 list() 及 items()】

  1. 字典名稱 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱.items()
  3. list( 字典名稱.items() )
>>> signals.items()
dict_items([('green', 'go'), ('yellow', 'go faster'), ('red', 'smile for the camera')])

>>> list( signals.items() )
[('green', 'go'), ('yellow', 'go faster'), ('red', 'smile for the camera')]

用 = 指派,用 copy() 來複製

用 = 指派

與串列一樣,當更改字典時,會反映在所有參考名稱上

  1. 字典名稱1 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱2 = 字典名稱1
  3. 字典名稱1[鍵4] = 值4
  4. 字典名稱2
  5. {鍵1:值1, 鍵2:值2, 鍵3:值3, 鍵4:值4}
>>> signals = {'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}
>>> save_signals = signals
>>> signals['blue'] = 'confuse everyone'

>>> save_signals
{'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera', 'blue': 'confuse everyone'}

用 copy() 來複製

將某個字典內的鍵與值,複製到其他的字典,使用 copy()

  1. 字典名稱1 = {鍵1:值1, 鍵2:值2, 鍵3:值3,}
  2. 字典名稱2 = 字典名稱1.copy()
  3. 字典名稱1[鍵4] = 值4
  4. 字典名稱1
  5. {鍵1:值1, 鍵2:值2, 鍵3:值3}
  6. 字典名稱2
  7. {鍵1:值1, 鍵2:值2, 鍵3:值3, 鍵4:值4}
>>> signals = {'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}
>>> original_signals = signals.copy()
>>> signals['blue'] = 'confuse everyone'

>>> signals
{'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera', 'blue': 'confuse everyone'}
>>> original_signals
{'green': 'go', 'yellow': 'go faster', 'red': 'smile for the camera'}

results matching ""

    No results matching ""