人生苦短,我選Pythonpython
前文傳送門git
小白學 Python(1):開篇github
小白學 Python(2):基礎數據類型(上)express
我先問一下,有沒用過字典的麼?
咱們先看一下現實中字典長啥樣。
嗯,這本字典看起來頗有年代感了。
那麼 Python 中的字典是什麼樣呢?
咱們一邊看代碼一邊聊:
字典由一組鍵(key)值(value)對組成的,相似於:
{key1: value1, key2: value2}
這樣一種形式。
字典的每一個鍵值(key=>value)對用冒號 :
分割。
每一個對之間用逗號 ,
分割。
整個字典包括在花括號 {}
中。
dict1 = {'name': 'geekdigging', 'age': 2} print(dict1) print(type(dict1))
結果以下:
{'name': 'geekdigging', 'age': 2} <class 'dict'>
注意: 鍵必須是惟一的,但值則沒必要。值能夠取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。
咱們建立一個奇葩一點的字典(該字典無任何含義,僅供演示):
dict2 = {(1, 2, 3): '123', 'name': 'geekdigging', 2: [1, 2, 3]} print(dict2) print(type(dict2))
結果以下:
{(1, 2, 3): '123', 'name': 'geekdigging', 2: [1, 2, 3]} <class 'dict'>
其實還能夠這麼建立:
dict3 = dict(name = 'geekdigging', age = 2) print(dict3) print(type(dict3))
結果以下:
{'name': 'geekdigging', 'age': 2} <class 'dict'>
這種狀況下,鍵只能爲字符串類型,而且建立的時候字符串不能加引號,加上就會直接報語法錯誤。
好比咱們嘗試將鍵變爲數字:
dict3 = dict(1 = 'geekdigging', 2 = 2)
結果以下:
File "D:/Development/Projects/python-learning/base-data-dict/Demo.py", line 13 dict3 = dict(1 = 'geekdigging', 2 = 2) ^ SyntaxError: keyword can't be an expression
語法: 字典名[鍵]
print(dict1['name'])
結果以下:
geekdigging
注意: 若是咱們查找的鍵在字典中不存在,會直接報錯。
print(dict1['geekdigging'])
結果以下:
Traceback (most recent call last): File "D:/Development/Projects/python-learning/base-data-dict/Demo.py", line 18, in <module> print(dict1['geekdigging']) KeyError: 'geekdigging'
報錯信息是 KeyError
,說明咱們的鍵錯誤。
若是要避免以上問題,須要先查找當前鍵是否存在,可使用如下語句:
語法: 鍵 in 字典
那麼上面的語句咱們結合前面的流程控制,能夠改成如下:
str = 'geekdigging' if str in dict1: print(dict1['geekdigging']) else: print('您查詢的鍵', str, '不存在')
結果以下:
您查詢的鍵 geekdigging 不存在
# 添加 dict1['a'] = 18 print(dict1) # 更新 dict1['name'] = 'www.geekdigging.com' print(dict1) # 刪除 del dict1['a'] print(dict1)
結果以下:
{'name': 'geekdigging', 'age': 2, 'a': 18} {'name': 'www.geekdigging.com', 'age': 2, 'a': 18} {'name': 'www.geekdigging.com', 'age': 2}
但願各位同窗在學習的過程當中能夠親自動手實踐一下示例代碼,畢竟本身不敲代碼是永遠學不會代碼的:)
本系列的全部代碼小編都會放在代碼管理倉庫 Github 和 Gitee 上,方便你們取用。