pathon筆記——第6章 字典
1、使用字典 字典:是一系列 鍵—值對 。每個鍵都與一個值相關聯,你可以使用鍵來訪問與之相關聯的值。 在 Python 中,字典用放在花括號 {} 中的一系列鍵 — 值對錶示。鍵和值之間用冒號分隔,而鍵 — 值對之間用逗號分隔。 例: alien_0 = {'color': 'green', 'points': 5} print(alien_0['color']) print(alien_0['points']) (1)訪問字典中的值 要獲取與鍵相關聯的值,可依次指定字典名和放在方括號內的鍵 例: alien_0 = {'color': 'green', 'points': 5} new_points = alien_0['points'] print("You just earned " + str(new_points) + " points!") (2)新增鍵 — 值對 要新增鍵 — 值對,可依次指定字典名、用方括號括起的鍵和相關聯的值。 例: alien_0 = {'color': 'green', 'points': 5} print(alien_0) alien_0['x_position'] = 0 alien_0['y_position'] = 25 print(alien_0) 注意,鍵 — 值對的排列順序與新增順序不同。 Python 不關心鍵 — 值對的新增順序,而只關心鍵和值之間的關聯關係。 (3)建立一個空字典 有時候,在空字典中新增鍵 — 值對是為了方便,而有時候必須這樣做。為此,可先使用一對空的花括號定義一個字典,再分行新增各個鍵 — 值對。 例: alien_0 = {} alien_0['color'] = 'green' alien_0['points'] = 5 print(alien_0) 使用字典來儲存使用者提供的資料或在編寫能自動生成大量鍵 — 值對的程式碼時,通常都需要先定義一個空字典。 (4)修改字典中的值 要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關聯的新值。 例: alien_0 = {'color': 'green'} print("The alien is " + alien_0['color'] + ".") alien_0['color'] = 'yellow' print("The alien is now " + alien_0['color'] + ".") (5)刪除鍵 — 值對 對於字典中不再需要的資訊,可使用 del 語句將相應的鍵 — 值對徹底刪除。使用 del 語句時,必須指定字典名和要刪除的鍵。 例: alien_0 = {'color': 'green', 'points': 5} print(alien_0) del alien_0['points'] print(alien_0) (6)由類似物件組成的字典 確定需要使用多行來定義字典時,在輸入左花括號後按回車鍵,再在下一行縮排四個空格,指定第一個鍵 — 值對,並在它後面加上一個逗號。此後你再次按回車鍵時,文字編輯器將自動縮排後續鍵 — 值對,且縮排量與第一個鍵 — 值對相同。 例: favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } print("Sarah's favorite language is " +favorite_languages['sarah'].title() +".")
2、遍歷字典 (1)遍歷所有的鍵 — 值對——items()方法 例: user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', } for key, value in user_0.items(): print("\nKey: " + key) print("Value: " + value) 注:即便遍歷字典時,鍵 — 值對的返回順序也與儲存順序不同。 Python 不關心鍵 — 值對的儲存順序,而只跟蹤鍵和值之間的關聯關係。 (2)遍歷字典中的所有鍵——keys() 方法 如果需要按順序遍歷字典中的所有鍵——函式 sorted() 例: favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } for name in sorted(favorite_languages.keys()): print(name.title() + ", thank you for taking the poll.") (3)遍歷字典中的所有值—— values()方法 如果需要剔除重複項——函式set() 例: favorite_languages = { 'jen': 'python', 'sarah': 'c', 'edward': 'ruby', 'phil': 'python', } print("The following languages have been mentioned:") for language in set(favorite_languages.values()): print(language.title())
3、巢狀 一系列字典儲存在列表中,或將列表作為值儲存在字典中,這稱為 巢狀 (1)字典列表 例: alien_0 = {'color': 'green', 'points': 5} alien_1 = {'color': 'yellow', 'points': 10} alien_2 = {'color': 'red', 'points': 15} aliens = [alien_0, alien_1, alien_2] for alien in aliens: print(alien) (2)在字典中儲存列表 例: # 儲存所點比薩的資訊 pizza = { 'crust': 'thick', 'toppings': ['mushrooms', 'extra cheese'], } # 概述所點的比薩 print("You ordered a " + pizza['crust'] + "-crust pizza " +"with the following toppings:") for topping in pizza['toppings']: print("\t" + topping) (3)在字典中儲存字典 例: 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())