字典dict型態

串型型態在記錄大量的資料時非常有用,但缺點是每一個資料項目只能以數字來作為索引,在程式邏輯上就沒那麼方便。字典資料型態也是用來記錄大量的資料,而它和串列最不一樣的地方是,它的每一個資料項目都必需給一個「鍵key」,「key」和「value」是成對出現的。

指定資料給dict,主要用的是大括號,方式如下:

week = {
'Sunday': "星期日",
'Monday': "星期一",
'Tuesday': "星期二",
'Wednesday': "星期三",
'Thursday': "星期四",
'Friday': "星期五",
'Saturday': "星期六",
}

有了上述的變數,請可以輕易地利用前面的字串作為索引而取出後面的值,範例程式如下:

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並不需要,直接以「_」底線符號來忽略它即可。

上述程式的執行結果如下:

星期四
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
('Sunday', '星期日')
('Monday', '星期一')
('Tuesday', '星期二')
('Wednesday', '星期三')
('Thursday', '星期四')
('Friday', '星期五')
('Saturday', '星期六')
星期日
星期一
星期二
星期三
星期四
星期五
星期六

其實如果只是想要取得字典中的鍵或值,還有專屬的函數可以用,那就是keys()和values(),程式範例如下:

week = {
'Sunday': "星期日",
'Monday': "星期一",
'Tuesday': "星期二",
'Wednesday': "星期三",
'Thursday': "星期四",
'Friday': "星期五",
'Saturday': "星期六",
}
print(week.keys())
print(week.values())

執行結果如下:

dict_keys(['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])
dict_values(['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'])