5.python字典操作

字典

知識點:

  1. 字典是由鍵-值對組成的。
  2. 可以通過鍵找到與之對應的值。
  3. 值可以是python中的任意可以創(chuàng)建的object德频。
  4. 通過‘:’冒號來連接鍵值對鲜漩,通過‘源譬,’逗號來間隔開不同的鍵值對。用大括號來包含所有的鍵值對孕似。
  5. 字典里面的鍵值對沒有順序踩娘。

1. 通過鍵訪問值

輸入:

alien_0={'color': 'blue' , 'point': 5}
print("the alien_0's color is " + alien_0['color'])

輸出:

c:\py>dictionary
the alien_0's color is blue

2. 添加鍵值對

直接通過:? 字典名[鍵]=值 ? 來添加

輸入:

alien_0={'color': 'blue' , 'point': 5}
print(alien_0)

alien_0['x_position']=0     #字典名[鍵]=值
alien_0['y_position']=25
print(alien_0)

輸出:

c:\py>dictionary
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5, 'x_position': 0, 'y_position': 25}

3. 從空字典開始

和上面添加鍵值對的方法一樣

輸入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5

print(alien_0)

輸出:

c:\py>empty_dic
{'color': 'blue', 'point': 5}

4. 改變字典中鍵值對的值

輸入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5

print(alien_0)

alien_0['color']='green'
alien_0['point']=2
print(alien_0)

輸出:

c:\py>empty_dic
{'color': 'blue', 'point': 5}
{'color': 'green', 'point': 2}

5. 使用del語句刪除鍵值對

輸入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5
alien_0['x_position']=0
alien_0['y_position']=25

print(alien_0)

del alien_0['x_position']   #刪除鍵值對'x_position':0
del alien_0['y_position']   #刪除鍵值對'y_position':25

print(alien_0)

輸出:

c:\py>empty_dic
{'color': 'blue', 'point': 5, 'x_position': 0, 'y_position': 25}
{'color': 'blue', 'point': 5}

6. 循環(huán)查詢字典中的鍵值對

要使用for循環(huán),則必須要有一個列表喉祭, .items()方法返回一個元素為鍵值對的列表养渴。

輸入:

alien_0={
    'color': 'blue', 
    'point': 5,
    'x_position': 0,
    'y_position': 25,#最后一個鍵值對也帶上逗號
    }

for key,value in alien_0.items():   #使用.items()方法
    print('\nkey: '+str(key))  #空一行
    print('value: '+str(value))

輸出:

c:\py>empty_dic

key: color
value: blue

key: point
value: 5

key: x_position
value: 0

key: y_position
value: 25

7. 循環(huán)查詢字典中的鍵

1. 使用.keys()方法

.keys()方法返回一個包含所有鍵的列表

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for key in alien_0.keys():  #使用.items()方法
    print('key: '+str(key))

輸出:

c:\py>empty_dic
key: point
key: y_position
key: x_position
key: color
2. 在for循環(huán)中直接使用字典名

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for key in alien_0: #直接使用字典名
    print('key: '+str(key))

輸出:

c:\py>empty_dic
key: point
key: y_position
key: x_position
key: color

使用.items()方法會讓代碼可讀性更高。

8. 循環(huán)查詢字典中的值

使用.values()方法

.values()方法返回一個包含所有鍵的列表

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for value in alien_0.values():  #使用.values()方法
    print('value: '+str(value))

輸出:

c:\py>empty_dic
value: 5
value: 25
value: 0
value: blue

9.按字母表順序輸出

由于字典中的鍵值對并沒有順序泛烙,所以無論是查看所有鍵或是查看所有值厚脉,都沒有固定的順序。

使用sorted()函數(shù)暫時改變列表順序胶惰。

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for key in sorted(alien_0.keys()):  #使用.keys()方法
    print('key: '+str(key))

輸出:

c:\py>empty_dic
key: color
key: point
key: x_position
key: y_position

注意: sorted()函數(shù)是對字符進行排序傻工,而值往往不止字符型一種,所以常常用來對鍵排序孵滞。

10.消除重復的元素

使用set()函數(shù)中捆,生成一個沒有重復元素的列表。

下面例子的字典point和y_position鍵所對應的值重復坊饶。

輸入:

alien_0={
    'point': 5,
    'y_position': 5,    #這兒和point鍵對應的值重復
    'x_position': 0,
    'color': 'blue',    #最后一個鍵值對也帶上逗號
    }
    
print('no duplicate values: ')
for value in set(alien_0.values()):   #使用.values()方法
    print(str(value))

輸出:

c:\py>empty_dic
no duplicate values:
0
5
blue

11.嵌套

11.1 在列表中嵌套字典

輸入:

aliens=[]    #創(chuàng)建一個空列表

for alien_number in range(30):
    new_alien={'color': 'blue' , 'point': 5}
    aliens.append(new_alien)

for alien in aliens[:5]:    #展示前5個元素
    print (alien)
print('...')
#輸出列表中alien的總數(shù)量
print('total number of aliens : '+str(len(aliens)))

輸出:

c:\py>nest
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
...
total number of aliens : 30

11.2 在字典中嵌套列表

輸入:

favorite_languages={
    'jen' : ['python','ruby'],
    'sarah' : ['c'],
    'jimmy' : ['ruby','go'],
    }
for name,languages in favorite_languages.items():
    print('\n'+name.title()+"'s favorite language are ")
    for language in languages:
        print('\t'+language)

輸出:

c:\py>list_nest_dic

Jen's favorite language are
        python
        ruby

Sarah's favorite language are
        c

Jimmy's favorite language are
        ruby
        go

11.3 在字典中嵌套字典

輸入:

users={
    'aeinstein':{
    'first' : 'albert',
    'last' : 'einstein',
    'location' : 'princeton',
        },#注意泄伪,字典嵌套字典,鍵值對之間要有逗號
        
    'mcurie':{
    'first' : 'marie',
    'last' : 'curie',
    'location' : 'pairs',
        },#注意匿级,字典嵌套字典蟋滴,鍵值對之間要有逗號
    }   
        
for user_name,user_info in users.items():
    print('\nUsername: '+user_name)
    full_name=user_info['first'] + ' '+user_info['last']
    location=user_info['location']
    
    print('\tFull name: '+full_name.title())
    print('\tLocation: '+location.title())

輸出:

c:\py>dic_nest_dic

Username: aeinstein
        Full name: Albert Einstein
        Location: Princeton

Username: mcurie
        Full name: Marie Curie
        Location: Pairs
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市痘绎,隨后出現(xiàn)的幾起案子津函,更是在濱河造成了極大的恐慌,老刑警劉巖孤页,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尔苦,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機允坚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門魂那,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稠项,你說我怎么就攤上這事涯雅。” “怎么了展运?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵活逆,是天一觀的道長。 經(jīng)常有香客問我乐疆,道長划乖,這世上最難降的妖魔是什么贬养? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任挤土,我火速辦了婚禮,結果婚禮上误算,老公的妹妹穿的比我還像新娘仰美。我一直安慰自己,他們只是感情好儿礼,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布咖杂。 她就那樣靜靜地躺著,像睡著了一般蚊夫。 火紅的嫁衣襯著肌膚如雪诉字。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天知纷,我揣著相機與錄音壤圃,去河邊找鬼。 笑死琅轧,一個胖子當著我的面吹牛伍绳,可吹牛的內容都是我干的。 我是一名探鬼主播乍桂,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冲杀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睹酌?” 一聲冷哼從身側響起权谁,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憋沿,沒想到半個月后闯传,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年甥绿,在試婚紗的時候發(fā)現(xiàn)自己被綠了字币。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡共缕,死狀恐怖洗出,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情图谷,我是刑警寧澤翩活,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站便贵,受9級特大地震影響菠镇,放射性物質發(fā)生泄漏。R本人自食惡果不足惜承璃,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一利耍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盔粹,春花似錦隘梨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至进萄,卻和暖如春捻脖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背中鼠。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工可婶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兜蠕。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓扰肌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熊杨。 傳聞我的和親對象是個殘疾皇子曙旭,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)晶府,斷路器桂躏,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 〇、前言 本文共108張圖川陆,流量黨請慎重剂习! 歷時1個半月,我把自己學習Python基礎知識的框架詳細梳理了一遍。 ...
    Raxxie閱讀 18,958評論 17 410
  • 李煜魂殤宋使前鳞绕,國破身虜盡凄然失仁。 一朝夢斷對殘月,三載思歸蕩寒煙们何。 回轉樓臺非御帳萄焦,今夕酒醉是何年。 京師空掛封侯...
    庭上望月閱讀 258評論 2 28
  • 彌漫于空氣中的淡淡年韻冤竹,像一支笛吹響了我對兒時年味的回憶拂封,不知從何時起那一縷深埋于心中的幽香,便隨著這笛音在心中飄...
    予默涵閱讀 228評論 0 0
  • 前兩天在家里看電視鹦蠕,看到了《快樂大本營》第1000期的特別節(jié)目冒签。 這檔節(jié)目已經(jīng)播放了20多年了,他們的主持人“快樂...
    Justabookworm閱讀 558評論 6 1