iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

Python 學習整理系列 第 18

Day18. Python 字典

  • 分享至 

  • xImage
  •  

重點

  • 什麼是字典
  • 字典的使用
    • 建立字典
    • 新增資料或更新
    • 刪除資料
  • 字典和串列的比較
  • 其他用法

為什麼要學字典

  • 儲存資料的好工具
  • 更方便地查找資料

字典 dictionary

  • 字典是一種 python 的資料型態
  • 字典,顧名思義,就是讓人方便查資料的工具
  • 就像英漢字典,我們需要找到英文單字,就可以知道對應的中文意思了
  • 分為 key 和 value 兩種元素
  • key 相當於是字典的索引值
  • value 相當於要查找的資料
  • key 是唯一的,且不可變動
  • 每個 key 對應一個 value

建立字典

用法: d = { }
- 利用 { } 建立字典
用法: d = { key_1 : value_1, key_2 : value_2 }
- 也能一開始便將資料放入
- 資料間以「,」做間隔


取得 value 值

用法: d [ key ]
用法: : d.get ( key )

  • 若字典內無相對應的 key 值,則會出現 error
d = {'人類大歷史': '從野獸到扮演上帝',
     '人類大命運': '從智人到神人',
     '被討厭的勇氣': '自我啟發之父「阿德勒」的教導'}

print(d['人類大命運'])
# 從智人到神人
print(d.get('人類大歷史'))
# 從野獸到扮演上帝
print(d['西方憑什麼'])
# KeyError: '西方憑什麼'

新增條目或更新 value

用法:d [ key ] = value
用法: d.update( { key : value } )

  • 若指定的 key 值有對應的 value ,則會以新的 value 取代舊的 value
d = {}

d['李登輝'] = '國民黨主席'

print(d['李登輝'])
# 國民黨主席

d.update({'李登輝': '中華民國總統'})

print(d['李登輝'])
# 中華民國總統

刪除資料

用法: del d [ key ]

  • 若字典無指定的 key 值將會有 error
d = {'第一次世界大戰': 1914, '第二次世界大戰': 1939, '鴉片戰爭': 1840, '黑船事件': 1853}
del d['鴉片戰爭']
print(d['鴉片戰爭'])
# KeyError: '鴉片戰爭'

用法:: d.pop ( key )

  • 使用 pop method 的好處是它會回傳你要刪掉的那個值
d = {'第一次世界大戰': 1914,
     '第二次世界大戰': 1939,
     '鴉片戰爭': 1840,
     '黑船事件': 1853}

k = d.pop('第二次世界大戰')

print(k)
# 1939
print(d)
# {'第一次世界大戰': 1914, '鴉片戰爭': 1840, '黑船事件': 1853}

字典與串列

list 串列

a = [1, 2, 3]
b = [2, 3, 1]
c = [1, 2, 3]

print(a == b)
# False
print(a == c)
# True

dictionary 字典

x = {'a': 1, 'b': 2, 'c': 3}

y = {'b': 2, 'c': 3, 'a': 1}

z = {'a': 1, 'b': 2, 'c': 3}

print(x == y)
# True
print(x == z)
# True

字典其它用法

warTimes = {'第一次世界大戰': 1914,
            '第二次世界大戰': 1939,
            '鴉片戰爭': 1840,
            '黑船事件': 1853}

print(len(warTimes))
# 4
print(warTimes.keys())
# dict_keys(['第一次世界大戰', '第二次世界大戰', '鴉片戰爭', '黑船事件'])
print(type(warTimes.keys()))
# <class 'dict_keys'>
python
warTimes = {'第一次世界大戰': 1914,
            '第二次世界大戰': 1939,
            '鴉片戰爭': 1840,
            '黑船事件': 1853}

print(warTimes.values())
# dict_values([1914, 1939, 1840, 1853])
print(warTimes.items())
# dict_items([('第一次世界大戰', 1914), ('第二次世界大戰', 1939), ('鴉片戰爭', 1840), ('黑船事件', 1853)])
warTimes = {'warName': '第一次世界大戰',
            'year': 1914}

for i in warTimes:
    print(i, warTimes[i])
# warName 第一次世界大戰
# year 1914

for i in warTimes.keys():
    print(i, warTimes[i])
# warName 第一次世界大戰
# year 1914
warTimes = {'warName': '第一次世界大戰',
            'year': 1914}

for i in warTimes.values():
    print(i)
# 第一次世界大戰
# 1914
for key, value in warTimes.items():
    print(key, value)
# warName 第一次世界大戰
# year 1914

重點整理:

  • 什麼是字典
  • 建立字典
    • 新增資料或更新
    • 刪除資料
  • 字串與串列
  • 其他用法

參考資料:
Yes


上一篇
Day17. Python 迴圈
下一篇
Day 19. Python 例外處理
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言