歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python基礎學習之Dict

Python基礎學習之Dict

日期:2017/3/1 9:14:32   编辑:Linux編程

一、什麼是字典?

字典是Python語言中唯一的映射類型。

映射類型對象裡哈希值(鍵,key)和指向的對象(值,value)是一對多的的關系,通常被認為是可變的哈希表。

字典對象是可變的,它是一個容器類型,能存儲任意個數的Python對象,其中也可包括其他容器類型。

字典類型與序列類型的區別:

1.存取和訪問數據的方式不同。
2.序列類型只用數字類型的鍵(從序列的開始按數值順序索引);
3.映射類型可以用其他對象類型作鍵(如:數字、字符串、元祖,一般用字符串作鍵),和序列類型的鍵不同,映射類型的鍵直4.接或間接地和存儲數據值相關聯。
5.映射類型中的數據是無序排列的。這和序列類型是不一樣的,序列類型是以數值序排列的。
6.映射類型用鍵直接“映射”到值。

字典是Python中最強大的數據類型之一。

二、字典的操作
# 字典的添加、刪除、修改操作
dict = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
dict["a"] = "watermelon" # 修改key:"a"對應的value:”apple"改為“watermelon”
del (dict["a"]) # 萬能刪除操作
dict["c"] = "grapefruit" # 修改key對應value
print(dict.pop("b")) # 取出一個key:"b",並從dict中移除他
dict.clear() # 清除字典
# 字典的遍歷
dict1 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
for k in dict1:
print("dict[%s]=" % k, dict1[k])

# 字典items()的使用
dict2 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
print(dict2.items()) # 每個元素是一個key和value組成的元組,以列表的方式輸出

# 調用items()實現字典的遍歷
dict3 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
for (k, v) in dict3.items():
print("dict3[%s]=" % k, v)


# 使用列表、字典作為字典的值
dict4 = {"a": ("apple",), "bo": {"b": "banana", "o": "orange"}, "g": ["grape", "grapefruit"]}
print(dict4["a"])
print(dict4["a"][0])
print(dict4["bo"])
print(dict4["bo"]["o"])
print(dict4["g"])
print(dict4["g"][1])

dict5 = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
# 輸出key的列表
print(dict5.keys())
# 輸出value的列表
print(dict5.values())
# 每個元素是一個key和value組成的元組,以列表的方式輸出
print(dict5.items())

# 字典中元素的獲取方法
dict6 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
print(dict6)
print(dict6.get("c", "apple"))
print(dict6.get("e", "apple"))

# get()的等價語句
D = {"key1": "value1", "key2": "value2"}
if "key1" in D:
print(D["key1"])
else:
print("None")

# 字典的更新
dict7 = {"a": "apple", "b": "banana"}
print(dict7)
dict13 = {"c": "grape", "d": "orange"}
dict7.update(dict13)
print(dict7)
# dpate()的等價語句
D = {"key1": "value1", "key2": "value2"}
E = {"key3": "value3", "key4": "value4"}
for k in E:
D[k] = E[k]
print(D)
# 字典E中含有字典D中的key
D = {"key1": "value1", "key2": "value2"}
E = {"key2": "value3", "key4": "value4"}
for k in E:
D[k] = E[k]
print(D)
# 設置默認值
dict7 = {}
dict7.setdefault("a")
print(dict7)
dict7["a"] = "apple"
dict7.setdefault("a", "default")
print(dict7)


# 調用sorted()排序
dict7 = {"a": "apple", "b": "grape", "c": "orange", "d": "banana"}
print(dict7)


# 按照key排序
print(sorted(dict7.items(), key=lambda d: d[0]))


# 按照value排序
print(sorted(dict7.items(), key=lambda d: d[1]))


# 字典的淺拷貝
dict7 = {"a": "apple", "b": "grape"}
dict10 = {"c": "orange", "d": "banana"}
dict11 = dict7.copy()
print(dict10)

# 字典的深拷貝
import copy

dict7 = {"a": "apple", "b": {"g": "grape", "o": "orange"}}
dict8 = copy.deepcopy(dict7)
dict9 = copy.copy(dict7)
dict8["b"]["g"] = "orange"
print(dict7)
dict9["b"]["g"] = "orange"
print(dict7)

三、使用字典的注意事項

1、不能允許一鍵對應多個值;
2、鍵必須是可哈希的。

CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved