字典是另一種可變容器模型,且可儲存任意型別物件。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號{}中
舉個例子,假設要根據同學的名字查詢對應的成績,如果用 list 實現,需要兩個 list :
給定乙個名字,要查詢對應的成績,就先要在 names 中找到對應的位置,再從 scores 取出對應的成績, list 越長,耗時越長。names =
['michael'
,'bob'
,'tracy'
]scores =[95
,75,85
]
如果用 dict 實現,只需要乙個「名字」-「成績」的對照表,直接根據名字查詢成績,無論這個表有多大,查詢速度都不會變慢。用python寫乙個 dict 如下:
由於乙個 key 只能對應乙個 value ,所以,多次對乙個 key 放入 value ,後面的值會把前面的值沖掉:>>
> d =
>>
> d[
'michael'
]95
如果key不存在,dict就會報錯:>>
> d[
'jack']=
90>>
> d[
'jack']90
>>
> d[
'jack']=
88>>
> d[
'jack'
]88
(1)修改元素>>
> d[
'thomas'
]traceback (most recent call last)
:file ""
, line 1,in
keyerror:
'thomas'
字典的每個元素中的資料是可以修改的,只要通過 key 找到,即可修改
(2)新增元素info =
new_id =
input
('請輸入新的學號:'
)info[
'id']=
int(new_id)
('修改之後的id為: %d'
% info[
'id'
])
訪問不存在的元素
info =
print(『id為:%d』 % info[『id』])
結果:
如果在使用 變數名[『鍵』] = 資料 時,這個「鍵」在字典中,不存在,那麼就會新增這個元素。>>
> info =
>>
>
>>
>
('id為:%d'
% info[
'id'])
traceback (most recent call last)
:file ""
, line 1,in
keyerror:
'id'
新增新的元素
(3)刪除元素info =
# print('id為:%d'%info['id'])#程式會終端執行,因為訪問了不存在的鍵
newid =
input
('請輸入新的學號:'
)info[
'id'
]= newid
('新增之後的id為:%d'
% info[
'id'])
結果:請輸入新的學號:188
新增之後的id為:
188
對字典進行刪除操作,有一下幾種:
delclear()
del 刪除指定的元素
del 刪除整個字典info =
('刪除前,%s'
% info[
'name'])
del info[
'name'
('刪除後,%s'
% info[
'name'])
結果》> info =
>>
>
>>
>
('刪除前,%s'
% info[
'name'])
刪除前,kkb
>>
>
>>
>
del info[
'name'
]>>
>
>>
>
('刪除後,%s'
% info[
'name'])
traceback (most recent call last)
:file ""
, line 1,in
keyerror:
'name'
clear清空整個字典info =
('刪除前,%s'
% info)
del info
('刪除後,%s'
% info)
(4)len()info =
('清空前,%s'
% info)
info.clear(
('清空後,%s'
% info)
測量字典中,鍵值對的個數
(5)keysd1 =
(len
(d1)
)結果:
3
返回乙個包含字典所有key的列表
(6)valuesd1 =
(list
(d1.keys())
)結果:
['name'
,'age'
,'class'
]
返回乙個包含字典所有value的列表
(7)itemsd1 =
(list
(d1.values())
)結果:
['abc'
,'18'
,'cnh'
]
返回乙個包含所有(鍵,值)元祖的列表
(8)has_key (python3 已取消)d1 =
(list
(d1.items())
)結果:[(
'name'
,'abc'),
('age'
,'18'),
('class'
,'cnh'
)]
dict.has_key(key) 如果key在字典中,返回 true ,否則返回 false
#######------------######------------
閱讀原文免費獲取python經典學習書本大禮包**(20餘本):
閱讀原文免費獲取r語言經典學習書本大禮包(10餘本):
Python基礎之字典dict
字典的特性,鍵值對出現 字典的定義 字典的key不可重複,如果key重複的話,預設最後乙個元素新增到字典中,多個元素之間用逗號分割。字典是無序的 定義乙個字典 例 dic 字典的常用方法 fromkeys 引數是乙個可迭代型別,把每乙個迭代物件變成字典的key,value預設為none 可以修改 例...
python基礎之字典 dict
字典 dict 是一種key value 字典是無序的,不能像str list 一樣 通過index查詢資料 字典內可以迴圈巢狀list dict等 列表key是唯一的,值不限制 學號 姓名 info 新增 修改 info 004 1 查詢print info.get 001 通過key獲取valu...
Python基礎之 字典dict
1.collections模組 collections模組包含除了dict set list tuple以外的一些特殊的容器型別,比如下面幾個 1 ordereddict類 排序字典,是字典的子類。2 defaultdict 使用工廠函式建立字典,使不用考慮缺失的字典鍵。3 counter類 為ha...