第5章 字典和結構化資料

2021-08-13 17:47:58 字數 2766 閱讀 2243

5.1字典資料型別

字典的索引可以使用許多不同型別的資料,不只是整數。字典的索引被稱為「鍵」,鍵及其關聯的值稱為「鍵—值」對,在**中,字典輸入時帶花括號{}。

字典中的表項是不排序的,所以字典不能像列表那樣切片。

5.1.1keys()、values()和items()方法

>>> spam = 

>>>

for i in spam.values():

print (i)

red42

可以通過list()方法將字典轉換為列表

>>> list(spam.keys())

['color', 'age']

>>> list(spam.values())

['red', 42]

>>> spam

5.1.2get()方法setdefault()方法

get()方法有兩個引數:要取得其值的鍵,以及如果該鍵不存在時,返回的備用值

setdefault()方法提供了一種方式,傳遞給該方法的第乙個引數,是要檢查的鍵,第二個引數,是如果該鍵不存在時要設定的值。如果該鍵存在就返回鍵值。

如果程式中匯入了pprint()模組,就可以使用pprint()和pformat()列印字典。

message = 'it was a bright cold day

in april, and

the clocks were striking thirteen.'

count = {}

forcharacter

in message:

count.setdefault(character, 0)

count[character] = count[character] + 1

print(pprint.pformat(count))

#pprint.pprint(count) print(pprint.pformat(count))這兩種表示式等價

執行結果:

5.2實踐專案

好玩遊戲的物品清單

inventory:

1 rop

6 torch

42 gold coin

1 dagger

12 arrow

total number

ofitems : 62

**如下:

def

displayinventory

(dic):

print('inventory:')

count = 0

for k, v in dic.items():

print(str(v) + ' ' + k)

count = v+count

print('total number of items : ', count)

dicvalue =

displayinventory(dicvalue)

假設征服一條龍的戰利品表示為這樣的字串列表:

dragonloot = ['gold coin', 'digger', 'gold coin', 'gold coin', 'ruby']
寫乙個名為 addtoinventory(inventory, addeditems)的函式,其中 inventory 引數

是乙個字典,表示玩家的物品清單(像前面專案一樣),addeditems 引數是乙個列表,

就像 dragonloot。

addtoinventory()函式應該返回乙個字典,表示更新過的物品清單。

def

displayinventory

(dic):

print('inventory:')

count = 0

for k, v in dic.items():

print(str(v) + ' ' + k)

count = v+count

print('total number of items : ', count)

defaddtoinventory

(inventory, addeditems):

for i in addeditems:

if i in inventory.keys():

inventory[i] += 1

else:

inventory.setdefault(i, 1)

return inventory

inv =

dragonloot = ['gold coin', 'digger', 'gold coin', 'gold coin', 'ruby']

inv = addtoinventory(inv,dragonloot)

displayinventory(inv)

前面的程式(加上前乙個專案中的 displayinventory()函式)將輸出如下:

inventory:

45 gold coin

1 rope

1 digger

1 ruby

total number

ofitems : 48

第5章 字典和結構化資料

1.字典與列表 字典中的表項是不排序,所以不能像列表那樣切片 vales 方法 字典的值 spam for v in spam.value print v red 42 keys 方法 字典的鍵 for k in spam.keys print k color age items 方法 字典的鍵 值...

結構化資料和半結構化資料和非結構化資料

計算機資訊化系統中的資料分為結構化資料和非結構化資料和半結構化資料。結構化資料,是指由二維表結構來表達邏輯和實現的資料,嚴格的遵循資料格式與長度規範,主要通過關係型資料庫進行管理和儲存。也稱作行資料,一般特點是 資料以行為單位,一行資料表示乙個實體的資訊,每一行資料的屬性是相同的。例 id name...

python之字典和結構化資料

首先為了更好的了解一下字典這種資料結構,直接舉乙個例子,使得我們對其有更加形象的認識 1 sam 2 sam animal 3 cat 上面的這種資料結構的定義方法就是字典 採用了鍵 值的形式。正如我們現實中運用的字典,查詢乙個詞,後面會跟上這個詞的一些含義。並且我們在查詢某個詞時可以直接用字典名 ...