小白學 Python(12):基礎數據結構(字典)(上)

人生苦短,我選Pythonpython

前文傳送門git

小白學 Python(1):開篇github

小白學 Python(2):基礎數據類型(上)express

小白學 Python(3):基礎數據類型(下)數據結構

小白學 Python(4):變量基礎操做學習

小白學 Python(5):基礎運算符(上)code

小白學 Python(6):基礎運算符(下)blog

小白學 Python(7):基礎流程控制(上)字符串

小白學 Python(8):基礎流程控制(下)get

小白學 Python(9):基礎數據結構(列表)(上)

小白學 Python(10):基礎數據結構(列表)(下)

小白學 Python(11):基礎數據結構(元組)

字典

我先問一下,有沒用過字典的麼?

咱們先看一下現實中字典長啥樣。

嗯,這本字典看起來頗有年代感了。

那麼 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 上,方便你們取用。

示例代碼-Github

示例代碼-Gitee

相關文章
相關標籤/搜索