Python筆記 財(cái)務(wù)小白的 day5 python編程基礎(chǔ)(3)

【本文的我,是一個(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判斷名稱是否在鍵值中。


image.png

3.Keys()、 values()和 items()方法

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

image.png

image.png

注意: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è)鍵或值是否存在于字典中。


image.png

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è)字典的字。


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 字典:當(dāng)索引不好用時(shí) 字典是一種通過名字引用值的數(shù)據(jù)結(jié)構(gòu)。這種結(jié)構(gòu)類型稱為映射。字典是Python中唯一內(nèi)建的映射...
    mydre閱讀 576評(píng)論 0 0
  • 1.列表1.1取單個(gè)值1.2切片獲取子列表1.3用len()函數(shù)獲取列表長度1.4列表的循環(huán)1.5列表的鏈接和復(fù)制...
    developerChenxi閱讀 521評(píng)論 0 1
  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)。通常情況下,聲明一個(gè)變量只保存一個(gè)值是遠(yuǎn)遠(yuǎn)不夠的,我們需要將一組...
    小黑y99閱讀 65,631評(píng)論 0 9
  • 斜倚床頭看書,放在枕邊的手機(jī)忽然閃出一條微信:神拐子!熬夜會(huì)變丑趕緊睡覺!知是閨蜜料我晚睡,故意發(fā)微信來騷擾...
    三月的綠蘿閱讀 1,040評(píng)論 1 3
  • 就像是進(jìn)入了一個(gè)迷霧圍城,自己不努力走出來誰也救不了你,可是我拼命地掙扎卻怎么也出不去,人生如只如初相見,該有多好...
    東方亦淺閱讀 318評(píng)論 0 0

友情鏈接更多精彩內(nèi)容