串型型態在記錄大量的資料時非常有用,但缺點是每一個資料項目只能以數字來作為索引,在程式邏輯上就沒那麼方便。字典資料型態也是用來記錄大量的資料,而它和串列最不一樣的地方是,它的每一個資料項目都必需給一個「鍵key」,「key」和「value」是成對出現的。
指定資料給dict,主要用的是大括號,方式如下:
Copy week = {
'Sunday' : "星期日" ,
'Monday' : "星期一" ,
'Tuesday' : "星期二" ,
'Wednesday' : "星期三" ,
'Thursday' : "星期四" ,
'Friday' : "星期五" ,
'Saturday' : "星期六" ,
}
有了上述的變數,請可以輕易地利用前面的字串作為索引而取出後面的值,範例程式如下:
Copy week = {
'Sunday' : "星期日" ,
'Monday' : "星期一" ,
'Tuesday' : "星期二" ,
'Wednesday' : "星期三" ,
'Thursday' : "星期四" ,
'Friday' : "星期五" ,
'Saturday' : "星期六" ,
}
print (week[ 'Thursday' ])
for weekday in week :
print (weekday)
for weekday in week . items ():
print (weekday)
for _ , weekday in week . items ():
print (weekday)
其中,items()是用來取得每一個項目的「鍵值對」之函數,如果使用一個變數來接收,會以Tuple元組的型態來取得,如果指定給兩個變數的話,則key會被放在一個變數,而value則是放到另外一個變數中。
在上述程式的第13中的weekday就是以Tuple的型態收到資料,而第15行則是以個別變數的型式取得字典中的資料,不過,因為我們只要中文名字(也就是值的部份),其面的key並不需要,直接以「_」底線符號來忽略它即可。
上述程式的執行結果如下:
Copy 星期四
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
('Sunday', '星期日')
('Monday', '星期一')
('Tuesday', '星期二')
('Wednesday', '星期三')
('Thursday', '星期四')
('Friday', '星期五')
('Saturday', '星期六')
星期日
星期一
星期二
星期三
星期四
星期五
星期六
其實如果只是想要取得字典中的鍵或值,還有專屬的函數可以用,那就是keys()和values(),程式範例如下:
Copy week = {
'Sunday' : "星期日" ,
'Monday' : "星期一" ,
'Tuesday' : "星期二" ,
'Wednesday' : "星期三" ,
'Thursday' : "星期四" ,
'Friday' : "星期五" ,
'Saturday' : "星期六" ,
}
print (week. keys ())
print (week. values ())
執行結果如下:
Copy dict_keys(['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])
dict_values(['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'])