iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
AI & Data

看對話學 Python 資料分析,用情境故事帶你入門系列 第 13

Day-13 日式咖哩店的資訊對話,活用字典 dictionary 儲存資料(中)

  • 分享至 

  • xImage
  •  


換一個擺盤,看起來更美味嗎?Meiko 想要新增其他的餐點到 Jason 的菜單裡面該怎麼做?讓我們繼續看下去...Licensed by Adobe Stock

前篇 Meiko 因為動腦學習字典 dictionary 造成胃口大開,想要請 Jason 加點天婦羅和清酒,要如何在字典 dictionary 中實作?讓我們繼續看下去...

新增、刪除、顯示,活用 key、value

Jason:「當想要新增的內容超過 1 個以上,我們可以先新增一個dictionary ,我們設定一個變數叫做temp_dict 好了,然後透過.update()的方式,把這個temp_dict.update(temp_dict)更新到原本的dictionary,像這樣」

temp_dict={
   'sides':'天婦羅',
   'drink':'清酒'
}
order_2.update(temp_dict)
print (order_2)

Jason:「你看,我剛才在order_2訂單裡面,又新增了sides對應到天婦羅,和drink對應到清酒,這兩個 key、value 值。」

Meiko:「Jason,那個,我突然不想吃炸雞了,覺得有點油膩,我要怎麼把炸雞從訂單中的 sides 刪掉呀?」

Jason:「你可以用 del 這個方法,像這樣

del order_1['sides']


剛才加進去 sides 的『炸雞』,已經被我給刪掉囉!」

Meiko:「Okay,那我要怎麼知道一個dictionary有幾張訂單呀?」

Jaosn :「你的問題可以調整成一個dictionary有幾個元素,比如說你想印出order_1有多少個元素的話可以用len函式 ,len(order_1),我們把它印出來就會像這樣

print (len(order_1))


這樣我們就可以知道,在order_1裡面總共有 7 個元素。」

Meiko:「有時候我有點金魚腦,很容易忘東忘西的,像我們現在放了很多東西到dictionary裡面,那我想要知道字典裡面全部的key該怎麼做?」

Jason :「你可以用.keys(),比如說order_1.keys(),我們把它印出來看看

print (order_1.keys())


這樣你就可以知道,在這個 dictionary 裡的所有的 key 囉。」

Meiko:「那如果我想知道鍵值所對應的值呢?」

Jason:「你可使用values這個方法,比如說order_1.values(),我們也把它印出來看

print (order_1.values())

你看,我們看到你訂單裡所有對應的值!」

Meiko:「我們可不可以同時把 key 和 value 同時印出來呀?這樣比較方便看!」

Jason :「歐,越來越有 sense囉,答案是可以的,這個時候你需要用到.items ()這個方法,比如說 order_1.items()

print (order_1.items())


Meiko:「真的耶,這樣就一次出來了 key 和 value 的數值了。」

Jason:「然後還有前面提到 key、value 裡的.items()函式,也可以跟for-loop一起合在一起使用,讓你觀察資料的時候更方便,像這樣

for key,value in order_1.items():
	print (key,value)

就在 Meiko 理解這段程式的過程中,廚房已經把 Meiko 和 Jason 的餐點準備好了。


服務生:「您好,請問『辛口牛肉咖喱』套餐是哪一位的?」

Meiko:「是我的!」

服務生:「那這位先生,這就是你的『甘口豬排咖哩』囉?」

Jason:「沒錯!謝謝!」

Meiko:「誒,怎麼這麼久了,餐點上了,飲料還沒上?該不會服務生還是廚師忘記了?Jason,我要怎麼知道訂單裡面飲料沒有漏掉呢?」

Jason:「你可以用'in'這個語法,程式就會回傳一個布林值bool(還記得我們在Day-11 蘋果橘子不一樣!了解數值資料型態(下)的時候有提到,對吧?),布林值會以True或是False來告訴你這個 key 值是否存在於字典中。」

Meiko:「歐,就是在講判斷下雨要不要帶傘的那一次麻,我記得,不過你還是給我一個例子吧...」

Jason:「好,比如說,你想知道'drink'有沒有在訂單order_1或是order_2裡面,就可以使用'drink' in order_1 以及 'drink' in order_2 來測試看看。」

print ('drink' in order_1)
print ('drink' in order_2)

Jason:「因為你的飲料,是加點在我的訂單order_2裡面,所以當我們查'drink'有沒有在order_1的時候,它就回傳了False。」

Meiko:「這樣看來要問服務生,order_2裡面的「飲料」廚房準備了沒?」

就在這段對話中, Meiko 很快地就把碗中的牛肉咖喱嗑完,還了一大口味增柴魚湯。

牛刀小試

我大寶寶~拉,今天介紹的dictionary用法,主要是想讓大家熟悉新增、刪除、顯示 key、value,確認dictionary的內容如我們想像,在未來操作資料的時候,是常用的技巧!

你可以試試看用dictionary,再新增其他的菜單到 Meiko 或是 Jason 的菜單之內,比如日式煎餃、大阪燒之類的,然後想辦法把他們印出來,或是你有什麼不喜歡吃的菜,也可以把它們刪除,我知道有些人就是不喜歡吃茄子,哈哈!Try Try 看囉!

給大寶寶留言、分享、鼓勵

歡迎登入留言跟我分享你的想法唷!(登入不麻煩,點一下 FB 登入就可以留言了!)

1.喜歡這樣方式學 Python 的朋友請留言『+1』
2.如果前面的內容忘記了,趕快看一下大寶寶這一系列的看對話學 Python 資料分析,用情境故事帶你入門的列表!就能夠繼續 Happy Coding 囉!


上一篇
Day-12 日式咖哩店的資訊對話,活用字典 dictionary 儲存資料(上)
下一篇
Day-14 日式咖哩店的資訊對話,活用字典 dictionary 儲存資料(下)
系列文
看對話學 Python 資料分析,用情境故事帶你入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言