1. 程式人生 > 實用技巧 >Python11月21日

Python11月21日

使用dict(字典)

Python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。

使用Python寫一個dict如下

d={'mike':45,'linda':55,'james':65}
print(d['james'])

65

把資料放入dict的方法,除了初始化時指定外,還可以通過key放入:

d['Adam'] = 67
print d['Adam']
67

由於一個key只能對應一個value,所以,多次對一個key放入value,後面的值會把前面的值沖掉:

d['Jack'] = 90
print d['Jack']
90
d['Jack'] = 88
print d['Jack']
88



dict可以用在需要高速查詢的很多地方,在Python程式碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變物件

這是因為dict根據key來計算value的儲存位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的演算法稱為雜湊演算法(Hash)。

要保證hash的正確性,作為key的物件就不能變。在Python中,字串、整數等都是不可變的,因此,可以放心地作為key。

* 使用字典制作購物車

def panduan_9(su_m):
if su_m < 1000:
return su_m
print('你在本店消費了超過1000元,享受9折優惠')
return su_m*0.9
shop={'辣條':30,'酸奶':50,'薯片':60,'餅乾':40,'可樂':20}
print('歡迎光臨55超市。\n下面是我們的商品及價格:')
su_m=0
for key in shop .items():
print(key)
while True:
isno = str(input("您需要購買商品嗎? yes/no \n"))
if isno == 'no':
su_m=panduan_9(su_m)
print('您的消費為%d元,歡迎下次光臨!' %su_m)
break
name = str(input('請您輸入要購買商品的名稱:'))
if name in shop.keys():
su_m += int(input('請輸入您要購買的數量:')) * shop.get(name)
else:
print('很抱歉,本店暫不能給您提供該商品。')