python基礎(chǔ)4-字典

alien_0 = {'color': 'green', 'points': 5}

print(alien_0['color'])
print(alien_0['points'])

1使用字典

字典是一系列 key-value對(duì)泵喘,每個(gè)鍵都與一個(gè)值相關(guān)聯(lián)悲雳,Key-value對(duì)是兩個(gè)相關(guān)聯(lián)的值翻屈。

key和value之間用冒號(hào)分隔,key-value之間用逗號(hào)分隔诲泌,在字典中盲赊,存儲(chǔ)多少個(gè)key-value對(duì)都行。

alien_0 = {'color': 'green'}

1.2敷扫、訪問(wèn)字典中的值

alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])

new_points = alien_0['points']
print("You just earned " + str(new_points) + " points!")

1.3哀蘑、添加鍵-值對(duì)

字典是一種動(dòng)態(tài)結(jié)構(gòu),可隨時(shí)在其中添加鍵-值對(duì)葵第。

key-value對(duì)的排列順序與添加順序不同绘迁,python不關(guān)心鍵-值對(duì)的添加順序,而只關(guān)心鍵和值之間的關(guān)聯(lián)關(guān)系卒密。

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

alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)

1.4缀台、創(chuàng)建空字典

可以直接使用一對(duì)空花括號(hào)定義一個(gè)空字典,然后根據(jù)需要再添加鍵值對(duì)

alien_0 = {}

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

print(alien_0)

1.5栅受、修改字典中的值

alien_0 = {'color': 'green'}
print(alien_0['color'])

alien_0['color'] = 'yellow'
print(alien_0['color'])

1.6将硝、刪除鍵值對(duì)

對(duì)于字典中不再需要的信息,可以使用del語(yǔ)句將相應(yīng)的鍵值對(duì)徹底刪除

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

del alien_0['points']
print(alien_0)

1.7屏镊、由類(lèi)似對(duì)象組成的字典

可以使用字典來(lái)存儲(chǔ)眾多對(duì)象的同一信息

favorite_languages = {
  'jen': 'python',
  'sarah': 'c',
  'edward': 'ruby',
  'phil': 'python',
    }

print("sarah`s favorite language is " + favorite_languages['sarah'].title() + ".")

2依疼、遍歷字典

2.1、遍歷所有的鍵值對(duì)

遍歷字典時(shí)而芥,鍵-值對(duì)的返回順序也與存儲(chǔ)順序不同律罢。

user_0 = {
  'usrname': 'efermi',
  'first': 'enrico',
  'last': 'fermi',
}

for key, value in user_0.item():
  print("\nKey: " + key)
  print("Value: " + value)

2.2、遍歷所有的鍵

遍歷字典時(shí)棍丐,會(huì)默認(rèn)遍歷所有的鍵误辑,所以可以加.keys(),也可以不加

favorite_languages = {
  'jen': 'python',
  'sarah': 'c',
  'edward': 'ruby',
  'phil': 'python',
}

firends = ['phil', 'sarah']
for name in favorite_languages.keys():
  print(name.title())
  if name in friends:
    print(" Hi " + name.title() + ", I see your favorite language is " + favorite_languages[name].title() + "!")

還可以使用關(guān)鍵字in, not in確定某個(gè)Key是否在字典中

Keys()并非只能用于遍歷歌逢,實(shí)際上巾钉,它返回了一個(gè)列表,其中包含字典中所有鍵秘案。

favorite_languages = {
  'jen': 'python',
  'sarah': 'c',
  'edward': 'ruby',
  'phil': 'python',
}

if 'erin' not in favorite_languages.keys():
  print("Erin, please take our poll!")

2.3砰苍、按順序遍歷字典中的所有鍵

獲取字典元素時(shí),獲取順序是不可預(yù)測(cè)的阱高。

要以特定順序返回元素赚导,可以在for循環(huán)中對(duì)返回的鍵進(jìn)行排序

for name in sorted(favorited_languages.keys()):
  print(name.title() + ", thank you for taking the poll.")

2.4、遍歷字典中所有值

2.4.1赤惊、基本方法

獲取字典中包含的值吼旧,可使用方法values(),它返回一個(gè)值列表未舟,而不包含任何鍵圈暗。

for language in favorite_languages.values():
    print(language.title())

2.4.2、去除重復(fù)值

基本方法中沒(méi)有考慮值重復(fù)的問(wèn)題处面,如果要剔除重復(fù)值厂置,可使用集合set。集合類(lèi)似于列表魂角,但是每個(gè)元素都必須獨(dú)一無(wú)二昵济。

set()方法可以讓python找出列表中獨(dú)一無(wú)二的元素,并使用這些元素來(lái)創(chuàng)建一個(gè)集合

for language in set(favorite_languages.values()):
  print(language.title())

3野揪、嵌套

3.1访忿、字典列表

可以創(chuàng)建一個(gè)字典列表,列表中的每個(gè)元素都是一個(gè)字典

alien_0 = {'color': 'red', 'points': 5}
alien_1 = {'color': 'green', 'points': 10}
alien_2 = {'color': 'yellow', 'points': 15}

aliens = [alien_0, alien_1, alien_2]

for alien in aliens:
  print(alien)

使用range()自動(dòng)生成多個(gè)字典對(duì)象

aliens = []

for alien_number in range(30):
  new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
  aliens.append(new_alien)
  
for alien in aliens[:5]:
  print(alien)
  
print("/nTotal number of aliens: " + str(len(aliens)))

3.2斯稳、在字典中存儲(chǔ)列表

favorite_languages = {
  'jen': ['python', 'ruby'],
  'sarah': ['c'],
  'edward': ['ruby', 'go'],
  'phil': ['python', 'haskell'],
}

for name, languages in favorite_languages.items():
  print("\n" + name.title() + "'s favorite languages are: ")
  for language in languages:
    print(lanuage)

3.3海铆、在字典中存儲(chǔ)字典

users = {
  'aeinstein': {
    'first': 'albert',
    'last': 'einstein',
    'location': 'princeton',
  },
  'mcurie': {
    'first': 'marie',
    'last': 'curie',
    'location': 'paris',
  },
}

for username, user_info in users.items():
  print("\nUsername: " + username)
  full_name = user_info['first'] + " " + user_info['last']
  location = user_info['location']
    print("\tFull name: " + full_name.title())
  print("\tLocation: " + location.title())
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挣惰,隨后出現(xiàn)的幾起案子卧斟,更是在濱河造成了極大的恐慌殴边,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件珍语,死亡現(xiàn)場(chǎng)離奇詭異锤岸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)板乙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)是偷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人募逞,你說(shuō)我怎么就攤上這事蛋铆。” “怎么了放接?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵刺啦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我透乾,道長(zhǎng)洪燥,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任乳乌,我火速辦了婚禮捧韵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汉操。我一直安慰自己再来,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布磷瘤。 她就那樣靜靜地躺著芒篷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪采缚。 梳的紋絲不亂的頭發(fā)上针炉,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音扳抽,去河邊找鬼篡帕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贸呢,可吹牛的內(nèi)容都是我干的镰烧。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼楞陷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怔鳖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起固蛾,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤结执,失蹤者是張志新(化名)和其女友劉穎度陆,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體献幔,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坚芜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了斜姥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沧竟,死狀恐怖铸敏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悟泵,我是刑警寧澤杈笔,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站糕非,受9級(jí)特大地震影響蒙具,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜朽肥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一禁筏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衡招,春花似錦篱昔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至浪箭,卻和暖如春穗椅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奶栖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工匹表, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驼抹。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓桑孩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親框冀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子流椒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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