一、字典(dict)
如果現在有個需求需要存我的信息,通過我們之前學習的數據類型,只有列表能夠存儲我們的信息。
user_info = ['nick', 'male', '19', ['oldboy', 'shanghai', 50]]
print(user_info[1]) # 'male'
print(user_info[0]) # 'nick'
print(user_info[3][1]) # 'shanghai'
male
nick
shanghai
使用列表雖然達到了我們的目的,但是我們能通過列表取值的時候,是基於我們已經知道了列表內部所有的元素。因此我們是不是可以給列表內的每一個元素都添加一個描述信息呢?否則如果不是存我的信息,而是用列表存取了成千上萬個值,那么我們怎么通過索引精准取值呢?這樣看起來好像是不可能的,因此可以使用新的數據類型——字典。
1.1 作用
用來存取多個值,按照key:value的方式存值,取的時候可以通過key而非索引去取值,key對value具有描述性的作用。存放數據的種類各種各樣並且數據較多的時候可以使用字典。
1.2 定義
在{}內用逗號分隔開多個元素,每一個元素都是key: value的格式,其中value是任意格式的數據類型,key由於具有描述性的作用,所以key通常是字符串類型。
user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
'company_info': ['oldboy', 'shanghai', 50]}
print(id(user_info))
print(type(user_info))
print(user_info)
4396183344
<class 'dict'>
{'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': ['oldboy', 'shanghai', 50]}
1.3 如何用
字典取值方式不再依賴於索引,而是依賴於key,通過[key]即可獲取key對應的value值。
# 字典套列表
user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
'company_info': ['oldboy', 'shanghai', 50]}
print(user_info['name'])
print(user_info['company_info'][0])
nick
oldboy
# 字典套字典
user_info = {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': {
'c_name': 'oldboy', 'c_addr': 'shanghai', 'c_num_of_employee': 50}}
print(user_info['name'])
print(user_info['company_info']['c_name'])
nick
oldboy
二、練習
取出students中第一個學生的姓名
students = [
{'name': 'nick', 'age': 19},
{'name': 'egon', 'age': 18}
]
print(students[0]['name'])
nick