1. 程式人生 > 實用技巧 >重走py 之路 ——字典和集合(二)

重走py 之路 ——字典和集合(二)

前言

python 中有6大標準型別:

數字(Number)
字串(String)
列表(List)
元組(Tumple)
集合(Set)
字典(Dictionary)

前面已經介紹了上面4種,還有下面兩種來介紹一下。

正文

字典

字典看起來非常像json,是的非常非常像,但是我們起碼需要明白的是json是一個字元格式,而字典是一種資料結構。

區別:

1)json的key只能是字串,dict的key可以是任何可hash的物件,例如:字串、數字、元組等。

2)json的key可以是有序、重複的;dict的key不可重複;

3)json的value只能是字串、浮點數、布林值或者null,或者它們構成的陣列或者物件;

4)json任意key存在預設值undefined,dict預設沒有預設值;

5)json訪問方式可以是[],也可以是.,遍歷方式分in,of; dict的value僅僅可以下標訪問;

6)json的字串強制用雙引號,dict的字串可以用單引號、雙引號;

7)dict可以巢狀tuple,json裡只有陣列

8)json:true、false、null

9)dict:True、False、None

10)json中文必須是unicode編碼,如“\u6211”

11)json的型別時字串,字典的型別是dict

總之,他們只是看起來像而已,但是並沒有什麼血緣關係,可以看做異父異母的親兄弟吧。

建立一個字典:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
print(test1);

這樣就ok了,是的沒有錯,這樣就建立了一個字典。

值得注意的是,我在上面註釋了一行:coding: utf-8,如果沒有這個python 無法解析中文,並給你丟擲一個異常。

如果你新增一個值,那麼:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
test1["school"]="primary";
print(test1);

這樣就可以了,你的key和value 可以是任意型別的值,這和靜態語言不一樣。

你可以在字典中套用列表:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
test1["school"]="primary";
test1["friend"]=["tony","tom","lily"];
print(test1);

當然,你還可以在列表中套用字典。

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
test1["school"]="primary";
test1["friend"]=["tony","tom","lily"];
student=[test1];
print(student);

[{'age': 18, 'name': 'zhang san', 'friend': ['tony', 'tom', 'lily'], 'school': 'primary'}]

你會發現,它對資料的支援真的太好了,如果你有一些資料的功能需要處理,python覺得是一個很好的選擇。

集合

建立一個集合同樣非常的簡單:

# coding: utf-8
test1={"1",1}
print(test1);

輸出:set(['1', 1])

沒錯,就是一個大括號,然後裡面寫了一些object,接著set就生成了。

set 有一些函式,需要都去試一試,你會發現一些非常方便的功能,這樣你在開發的時候就不用查詢某個查詢該怎麼寫,事實上大部分都提供了。

next Function