【本文的我,是一個(gè)文科財(cái)務(wù)工作者。在單位信息化全靠人做的年代,確實(shí)工作壓力大也忙不過來。9102年的我,深感不學(xué)習(xí)點(diǎn)新知識(shí)遲早要被淘汰。所以今天開始記錄自己的python小白筆記,各位見笑?!?/p>
編程基礎(chǔ)部分筆記:《python編程快速上手-讓繁瑣工作自動(dòng)化》,AI Sweigart,人民郵電出版社
day5 python編程基礎(chǔ)(3)
CH5 字典和結(jié)構(gòu)化數(shù)據(jù)
1.字典數(shù)據(jù)類型
像列表一樣,“字典”是許多值的集合。但不像列表的下標(biāo),字典的索引可以使用許多不同數(shù)據(jù)類型, 不只是整數(shù)。
在代碼中,字典輸入時(shí)帶花括號(hào){}。
>>> myCat = {'size': 'fat', 'color': 'gray', 'disposition': 'loud'}
>>> myCat['size']
'fat'
>>> 'My cat has ' + myCat['color'] + ' fur.'
'My cat has gray fur.'
2.字典與列表
創(chuàng)建初始字典, 用In判斷名稱是否在鍵值中。

3.Keys()、 values()和 items()方法
keys()、 values()和 items()分別對(duì)應(yīng)于字典的鍵、值和鍵-值對(duì):


注意:items()方法返回的 dict_items 值中,包含的是鍵和值的元組。如果希望通過這些方法得到一個(gè)真正的列表,就把類似列表的返回值傳遞給 list函數(shù)。
在交互式環(huán)境中輸入以下代碼:
>>> spam = {'color': 'red', 'age': 42}
>>> spam.keys()
dict_keys(['color', 'age'])
>>> list(spam.keys())
['color', 'age']
list(spam.keys())代碼行接受 keys()函數(shù)返回的 dict_keys 值,并傳遞給 list()。然后返回一個(gè)列表,即['color', 'age']。
4.檢查字典中是否存在鍵或值
in 和 not in 操作符可以檢查值是否存在于列表中。也可以利用這些操作符,檢查某個(gè)鍵或值是否存在于字典中。

5.get()方法
get()方法,它有兩個(gè)參數(shù):要取得其值的鍵,以及如果該鍵不存在時(shí),返回的備用值。使用get()避免始終要檢查該鍵是否存在于字典中。
>>> picnicItems = {'apples': 5, 'cups': 2}
>>> 'I am bringing ' + str(picnicItems.get('cups', 0)) + ' cups.'
'I am bringing 2 cups.'
>>> 'I am bringing ' + str(picnicItems.get('eggs', 0)) + ' eggs.'
'I am bringing 0 eggs.'
因?yàn)?picnicItems 字典中沒有'egg'鍵, get()方法返回的默認(rèn)值是 0。不使用 get(),代碼就會(huì)產(chǎn)生錯(cuò)誤消息,
6.setdefault()方法
setdefault()方法提供了一種方式,在一行中完成這件事。傳遞給該方法的第一個(gè)參數(shù),是要檢查的鍵。第二個(gè)參數(shù),是如果該鍵不存在時(shí)要設(shè)置的值。如果該鍵確實(shí)存在,方法就會(huì)返回鍵的值。
>>> spam = {'name': 'Pooka', 'age': 5}
>>> spam.setdefault('color', 'black')
'black'
>>> spam
{'color': 'black', 'age': 5, 'name': 'Pooka'}
>>> spam.setdefault('color', 'white')
'black'
>>> spam
{'color': 'black', 'age': 5, 'name': 'Pooka'}
第一次調(diào)用 setdefault()時(shí),spam 變量中的字典變?yōu)閧'color': 'black', 'age': 5, 'name':
'Pooka'}。該方法返回值'black', 因?yàn)楝F(xiàn)在該值被賦給鍵'color'。當(dāng)Spam.setdefault('color','white')接下來被調(diào)用時(shí),該鍵的值“沒有”被改變成'white',因?yàn)?spam 變量已經(jīng)有名為'color'的鍵。
setdefault()方法是一個(gè)很好的快捷方式,可以確保一個(gè)鍵存在。下面有一個(gè)小程序,計(jì)算一個(gè)字符串中每個(gè)字符出現(xiàn)的次數(shù)。程序循環(huán)迭代 message 字符串中的每個(gè)字符,計(jì)算每個(gè)字符出現(xiàn)的次數(shù)。 setdefault()
方法調(diào)用確保了鍵存在于 count 字典中(默認(rèn)值是 0),這樣在執(zhí)行 count[character] =
count[character] + 1 時(shí),就不會(huì)拋出 KeyError 錯(cuò)誤。
message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
count = {}
for character in message:
count.setdefault(character, 0)
count[character] = count[character] + 1
print(count)
6.漂亮打印
如果程序中導(dǎo)入 pprint 模塊, 就可以使用 pprint()和 pformat()函數(shù),它們將“漂亮
打印”一個(gè)字典的字。
