python之字典和結構化資料

2021-10-05 07:56:32 字數 2572 閱讀 9627

首先為了更好的了解一下字典這種資料結構,直接舉乙個例子,使得我們對其有更加形象的認識:

1 >>> sam=

2 >>> sam['

animal']

3'cat'

上面的這種資料結構的定義方法就是字典:採用了鍵---值的形式。正如我們現實中運用的字典,查詢乙個詞,後面會跟上這個詞的一些含義。並且我們在查詢某個詞時可以直接用字典名【鍵】的方式進行索引。

列表中的內容是有順序的,也就是說順序不同而元素相同的情況下,列表是不同的,而字典則沒有順序的概念,只要元素的個數和名稱以及內容是一樣的,那麼就是同乙個字典。

當我們定義了乙個字典以後,由於字典是沒有順序的,那麼我們該如何遍歷訪問每乙個字典的成員呢?

可以用類方法keys()、values()、items()來遍歷訪問鍵、值和鍵-值,具體如下:

1 >>> sam=

2 >>> for v in

sam.values():

3print

(v)4

5red

6 42

7chicken

8 >>> for i in

sam.keys():

9print

(i)10

11color

12num

13food

14 >>> for k in

sam.items():

15print

(k)16

17 ('

color

', '

red'

)18 ('

num', 42)

19 ('

food

', '

chicken

')

直接用in,返回布林值

1 >>> ''in

sam.values()

2 false

當我們要檢查乙個值是否在字典中時,可能會比較麻煩:首先判斷該值是否在字典中,如果在才可以顯示該值。如果不這樣操作,而是直接尋找,那麼程式就會崩潰,這就很不方便,於是發明了get()方法:

get()方法有兩個引數,第乙個是要取得其值的鍵,第二個是如果不存在時的備用返回值

1 >>> bam=

2 >>> pos=bam.get('

color

','there is not')

3 >>>pos4'

red'

5 >>> bos=bam.get('

key','

there is not')

6 >>>bos7'

there is not

'

有的時候我們確切地需要乙個值,但是這樣的乙個值又不存在於字典中,那麼我們就可以通過setdefault()方法將這樣的乙個值新增到字典中,新增到字典中以後,如果再次呼叫這個方法,由於鍵值已經存在了,新的鍵值便不會再次新增,也不會再進行更新。如下:

1 >>> bam=

2 >>> bam.setdefault('

name

','mike')

3'mike

'4 >>>bam

5 6 >>> bam.setdefault('

name

','jone')

7'mike

'8 >>>bam

9

import

pprint

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]=+2pprint.pprint(count)

輸出結果:

1

關於漂亮列印,主要是引入了pprint模組,這個模組中包含了兩個重要的列印方式:pprint()和pformat(),下面的兩種方式是等價的:

import

pprint

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]=+2pprint.pprint(count)

print

(pprint.pformat(count)) #和上一句是等價的

pprint.pformat(count) #pformat這種方法並不是顯示到螢幕上,而是形成乙個字串儲存起來,儲存的格式和列印出的格式相同

下面的輸出結果是:

1 

23

python結構化資料 python字典結構化資料

dict 鍵 值 key value 對集合,查詢速度極快,但浪費記憶體。dict dict dict.keys keys 以列表返回字典所有的鍵 age name class dict.values values 以列表返回字典的所有鍵值 7,zara first dict.items items...

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

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

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

本文 在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis,mangodb rdbms關聯式資料庫 oracle,mysql等 還有一些其它的資料庫如hbase,在這些資料庫中,又會出現結構化資料,非結構化資料,半結構化資料,下面列出各種資料型別 結構化...