Python內置數據結構 - 字典dict

字典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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章