Learn Python 3:dict

一、什么是字典

Python中奔害,字典(dict),是一系列放在{}的鍵值對(key-value)楷兽。可以使用鍵來訪問對應(yīng)的值华临,與鍵對應(yīng)的值可以是數(shù)字芯杀、字符串、列表雅潭、字典揭厚,字典具有極快的查找速度。下邊是一個與手機信息相關(guān)的dict:

{'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}

除了直接通過{}來創(chuàng)建字典扶供,還可以通過如下方式:

d = dict(os= 'Android', soc='Qualcomm', screen='Samsung')

使用可迭代對象(列表筛圆、元組等)也可以創(chuàng)建字典:

>>>d=dict((['x', 1], ['y', 2], ['z', 3]))
>>>d
{'x': 1, 'y': 2, 'z': 3}
>>>d=dict(zip(('x', 'y', 'z'), (1, 2, 3)))
>>>d
{'x': 1, 'y': 2, 'z': 3}

還可以使用fromkeys()內(nèi)建方法創(chuàng)建默認(rèn)字典:

>>>{}.fromkeys(('x', 'y', 'z'), -1)
{'x': -1, 'y': -1, 'z': -1}

二、字典操作

1椿浓、訪問字典中的值
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
# 通過key訪問value太援,如果key不存在則報錯
>>>m['os']
'Android'
# 為了避免key不存在報錯問題,可以使用get方法扳碍,如果key不存在則返回None提岔,或指定返回值
>>>m.get('soc')
'Qualcomm'
# key不存在時,指定返回值
>>>m.get('xxx'笋敞,-1)
-1
# 除了get方法外碱蒙,還可以先通過in判斷key是否存在
>>>'xxx' in m
False
>>>'os' in m 
True
2、添加 key-value
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
>>>m['camera'] = 'Sony'
>>>m
{'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung', 'camera': 'Sony'}
3夯巷、刪除 key-value
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
>>>del m['os']
>>>m
{'soc': 'Qualcomm', 'screen': 'Samsung'}
>>>m.pop('soc')
'Qualcomm'
>>>m
{'screen': 'Samsung'}
# 刪除所有鍵值對
>>>m.clear()
>>>m
{}
4振亮、修改字典中的值
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
>>>m['screen'] = 'BOE'
>>>m
{'os': 'Android', 'soc': 'Qualcomm', 'screen': 'BOE'}
5巧还、遍歷字典
5.1、遍歷key-value
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
# m.items()返回一個列表坊秸,列表的每一個元素是一個包含key、value的tuple
>>>for key, value in m.items():
···    print(key + ' -> ' + value)
···
os -> Android
soc -> Qualcomm
screen -> Samsung
5.2澎怒、遍歷key
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
>>>for key in m.keys():
···    print(key)
···
os
soc
screen
5.3褒搔、遍歷value
>>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
>>>for value in m.values():
···    print(value)
···
Android
Qualcomm
Samsung
6、字典的長度(鍵值對數(shù)量)
>>>d = {'x': 1, 'y': 2, 'z': 3}
>>>len(d)
3
7喷面、update
# 將一個字典的內(nèi)容添加到另一個字典
>>>d = {'x': 1, 'y': 2, 'z': 3}
>>>d1 = {'m': 4, 'n': 5}
>>>d.update(d1)
>>>d
{'x': 1, 'y': 2, 'z': 3, 'm': 4, 'n': 5}
7星瘾、注意事項:
  • dict 查找和插入的速度,不會隨key的增加而變慢
  • 和list相比惧辈,dict 會占用更多的內(nèi)存空間
  • dict 是用空間來換取時間的一種方法
  • dict 中的key必須是不可變對象, 不能重復(fù)琳状,Python中,字符串盒齿、整數(shù)等都是不可變的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末念逞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子边翁,更是在濱河造成了極大的恐慌翎承,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件符匾,死亡現(xiàn)場離奇詭異叨咖,居然都是意外死亡,警方通過查閱死者的電腦和手機啊胶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門甸各,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人焰坪,你說我怎么就攤上這事趣倾。” “怎么了琳彩?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵誊酌,是天一觀的道長。 經(jīng)常有香客問我露乏,道長碧浊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任瘟仿,我火速辦了婚禮箱锐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劳较。我一直安慰自己驹止,他們只是感情好浩聋,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臊恋,像睡著了一般衣洁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抖仅,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天坊夫,我揣著相機與錄音,去河邊找鬼撤卢。 笑死环凿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的放吩。 我是一名探鬼主播智听,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渡紫!你這毒婦竟也來了到推?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤腻惠,失蹤者是張志新(化名)和其女友劉穎环肘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體集灌,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡悔雹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欣喧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腌零。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖唆阿,靈堂內(nèi)的尸體忽然破棺而出益涧,到底是詐尸還是另有隱情,我是刑警寧澤驯鳖,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布闲询,位于F島的核電站,受9級特大地震影響浅辙,放射性物質(zhì)發(fā)生泄漏扭弧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一记舆、第九天 我趴在偏房一處隱蔽的房頂上張望鸽捻。 院中可真熱鬧,春花似錦、人聲如沸御蒲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厚满。三九已至府瞄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痰滋,已是汗流浹背摘能。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敲街,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓严望,卻偏偏與公主長得像多艇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子像吻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 個人筆記峻黍,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,715評論 0 5
  • 文/Bruce.Liu1 1.運算符 本章節(jié)主要說明Python的運算符姆涩。舉個簡單的例子 4 +5 = 9 。 例...
    BruceLiu1閱讀 773評論 0 6
  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)黎侈。通常情況下察署,聲明一個變量只保存一個值是遠(yuǎn)遠(yuǎn)不夠的,我們需要將一組...
    小黑y99閱讀 65,200評論 0 9
  • Python簡介 Python歷史 Python 是由 Guido van Rossum 在八十年代末和九十年代初...
    莫名其妙的一生閱讀 1,052評論 0 2
  • 今天下四分峻汉,為魏秦宋齊贴汪。梟雄四起,男女皆可為政里休吠。 魏女者當(dāng)政扳埂,風(fēng)游牧族。秦堪武力蛛碌,兵霸四方聂喇。宋興婉約,顏值爆表。...
    斛綏閱讀 588評論 0 1