官术网_书友最值得收藏!

2.3.2 什么是字典

創建一個變量roll,將派森號所有的運動員參賽項目的鍵值對都存放進去,用逗號(,)隔開,再用花括號({})把它們全部括起來,這就是一個字典了:


#派森號的參賽項目名冊
roll={'格蘭特蕾妮': ['10000公里競速',0, '精準拋射', '著陸技巧', '星礦探索'],
      '大熊': [0,'20000公里避障飛行','精準拋射',0, '星礦探索'],
      '西西船長': ['10000公里競速',0,'精準拋射', '著陸技巧', '星礦探索'],
      '克里克里': [0,'20000公里避障飛行','精準拋射', '著陸技巧', '星礦探索'],
      '菲菲兔': ['10000公里競速',0,'精準拋射', '著陸技巧', '星礦探索'],
      '洛克威爾': ['10000公里競速','20000公里避障飛行',0,'著陸技巧',0]
      }

“看起來挺整齊呀!”一旁觀看許久的裁判長迪克納瑞先生說道,“可是這個字典真能快速地告訴我每個隊員的項目嗎?”

“是的,裁判長先生。”洛克威爾說,“可以通過字典元素的鍵立即得到它對應的值。比如現在想知道我的參賽項目,可以這樣做。”說著,洛克威爾輸入了以下代碼:


#引用字典元素
print(roll)                     #輸出整個字典
name='洛克威爾'
print(name,"參加的項目是: ",roll[name])    #輸出鍵'洛克威爾'對應的值

運行后輸出為:


{'格蘭特蕾妮': ['10000公里競速', 0, '精準拋射', '著陸技巧', '星礦探索'],
    '大熊': [0, '20000公里避障飛行', '精準拋射', 0, '星礦探索'],
    '西西船長': ['10000公里競速', 0, '精準拋射', '著陸技巧', '星礦探索'],
    '克里克里': [0, '20000公里避障飛行', '精準拋射', '著陸技巧', '星礦探索'],
    '菲菲兔': ['10000公里競速', 0, '精準拋射', '著陸技巧', '星礦探索'],
    '洛克威爾': ['10000公里競速', '20000公里避障飛行', 0, '著陸技巧', 0]}
洛克威爾 參加的項目是: ['10000公里競速', '20000公里避障飛行', 0, '著陸技巧', 0]

看到了吧,只要告訴字典需要的“鍵”,立馬就會得到對應的“值”。

使用方括號([])指明要訪問的元素的key值即可獲得對應的value值,相當于使用key值作為元素的下標,這樣就不需要關心元素在字典中存放的位置了。

“那字典也和列表、元組、字符串一樣,屬于序列類型嗎?”迪克納瑞問。

“Oh,no!實際上,字典無法使用序號作為下標,否則代碼就會產生錯誤,不信你試試?”洛克威爾對裁判長先生說。


>>> roll[3]                #試圖返回字典的第4個下標元素
Traceback (most recent call last):
    File "<pyshell#2>", line 1, in <module>
        roll[3]                    #試圖返回字典的第4個下標元素
KeyError: 3

IDLE提示“鍵錯誤”(KeyError),意思是字典里沒有3這個鍵。所以同樣的道理,如果訪問字典元素時,不小心寫錯了鍵,也會出現同樣的錯誤。

主站蜘蛛池模板: 石嘴山市| 时尚| 高要市| 巴马| 永登县| 和田县| 莲花县| 游戏| 镇平县| 南皮县| 遂川县| 闻喜县| 兴义市| 翼城县| 万源市| 运城市| 新蔡县| 基隆市| 原平市| 进贤县| 西贡区| 内乡县| 新密市| 普安县| 泸西县| 林西县| 清河县| 吴堡县| 河东区| 永济市| 屯留县| 青田县| 卢湾区| 白城市| 南部县| 凯里市| 亳州市| 吕梁市| 龙里县| 宜兴市| 江西省|