字典dict
- 字典是一種組合數據,沒有順序,數據以鍵值對形式出現
- 字典是無序序列,所以沒有分片和索引
- 字典中的每個數據都是鍵值對(kv對, key-value對)
- key: 必須是可哈希的值,比如int,string,float,tuple, 但是list,set,dict不行
- value: 任何值
創建字典
# 創建空字典
d = { }
print(type(d))
# 創建空字典2
d = dict()
print(type(d))
d = {1,2,3}
print(type(d))
d = {"one":1, "two":2, "three":3}
print(d)
# 用dict創建有內容字典
d = dict({"one":1, "two":2, "three":3})
print("*" * 20)
d = dict(one=1,two=2, three=3)
print(d)
輸出結果:
<class ‘dict’>
<class ‘dict’>
<class ‘set’>
{‘one’: 1, ‘two’: 2, ‘three’: 3}
{‘one’: 1, ‘two’: 2, ‘three’: 3}
字典生成式
# 字典生成式
d = {"one":1, "two":2, "three":3}
dd = {k:v for k,v in d.items()}
print(dd)
#加限制條件
dd = {k:v for k,v in d.items() if v % 2 == 0}
print(dd)
字典的常見增刪改操作
- 訪問數據
- 之間數值鍵對
- 修改值的內容
- 刪除某個鍵值
- 成員檢測: in, not in, 注意檢測的是鍵值key的內容
- 遍歷
# 訪問數據
d = {"one":1, "two":2, "three":3}
# 注意訪問格式,中括號內是鍵值
print(d["one"])
#增加一個鍵值對
d["four"] = 4
# 修改值的內容
d["one"] = "wang"
print(d)
# 刪除某個鍵值使用del
del d["two"]
print(d)
字典的內置函數和結構
- get:根據指定鍵值返回相應的值,可以設置返回的默認值,不存在不報錯
- fromkeys: 使用指定的序列作爲鍵值,一個默認值作爲所有鍵的值。注意fromkeys的調用主體
- 字典內置數據結構在遍歷中的作用
- keys()
- values()
- items() : 包含key和value
get使用:
# get:根據指定鍵值返回相應的值,可以設置返回的默認值,不存在不報錯
d = {"one":1, "two":2, "three":3}
print(d.get("one"))
print(d.get("aaa"))
print(d.get("aaa","Not Existed"))
輸出結果:
1
None
Not Existed
fromkeys使用
# fromkeys: 使用指定的序列作爲鍵值,一個默認值作爲所有鍵的值
# 注意fromkeys的調用主體
l = ["a","b","c"]
d = dict.fromkeys(l,"111")
print(d)
數據的遍歷
# 遍歷在python2和python3中區別比較大,代碼不通用
d = {"one":1, "two":2, "three":3}
#使用for循環
for k in d:
print(k,d[k])
# 上面代碼可以寫成如下:
for k in d.keys():
print(k,d[k])
# 可以直接用value來訪問
for v in d.values():
print(v)
# 注意鍵值對的特殊用法
for k,v in d.items():
print(k,"---",v)