1. 程式人生 > >Python小白學習之路(七)—【字典】【字典的功能】【布林值】

Python小白學習之路(七)—【字典】【字典的功能】【布林值】

字典(dict)

基本結構:

d = {key1 : value1, key2 : value2 }
dict = {'K1': 1, 'K2': 2, 'K3': '3'}
  • key : value稱為字典的鍵值對。
  • 每個鍵 key和值value 之間用冒號 : 分割
  • 每個鍵值對(也就是字典的一個元素)之間用逗號 , 分割
  • 整個字典包括在花括號  { }  中
  • 字典是無序的(所以不存在切片)
  • 值(value)可以取任何資料型別,但鍵(key)必須是不可變的(列表和字典不能作為字典的key)
  • 鍵就相當於地址,首先得固定,而且不能重複,鍵一般是唯一的,如果重複最後的一個鍵值對會替換前面的

字典的功能

先給一個很長的字典(手動捂臉),這不是為難人嘛(難的都明白了,簡單的不在話下)

d = {'K1': 18, 2: True, 'K3':[11,[1,6],('a',88),22,33,{'KK1':'VV1','KK2':'VV2','KK3':'VV3'}],'K4':(11,22,33,44)}

以下操作的針對這個長長的字典 d 的哦

1.索引取值

#通過索引 鍵(key)來獲取一級元素
v1 = d['K1']
#通過索引來獲取‘VV1’
v2 = d['K3'][5]['KK1']
print(v1,v2)

#執行結果
18 VV1

2.clear

  • D.clear() -> None. Remove all items from D.
v = d.clear()
print(v)
#執行結果:
None

3.copy

  • D.copy() -> a shallow copy of D
v = d.copy()
print(v)

4.del

#利用索引,通過del刪除字典中的元素
del d['K1']
del d['K3'][1][1]
print(d)

5.for迴圈

#for迴圈返回鍵(key)
for item in d:
print(item)
#執行結果:
K1
2
K3
K4
#for迴圈返回值value
for item in d.values():
print(item)
#執行結果
18 True [11, [1, 6], ('a', 88), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2'}] (11, 22, 33, 44)
#for迴圈同時返回鍵(key)和值(value)
for k,v in d.items():
print(k,v)
#執行結果
K1 18
2 True
K3 [11, [1, 6], ('a', 88), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2'}]
K4 (11, 22, 33, 44)

6.fromkeys

  • 根據序列,建立字典,並指定統一的值
  • Create a new dictionary with keys from iterable and values set to value.
v = dict.fromkeys(['k1','k2','k3'],666)
print(v)

#執行結果
{'k1': 666, 'k2': 666, 'k3': 666}

7.get

  • Return the value for key if key is in the dictionary, else default.
  • 根據key獲取值,key不存在時,可以指定返回值(預設情況下返回None)
v1 = d.get('K1')
v2 = d.get('K2')
v3 = d.get('K2',666)
print(v1,v2,v3)
#執行結果:
18 
None 
666

8. pop

  • D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
  • If key is not found, d is returned if given, otherwise KeyError is raised
#刪除指定的元素,並將刪除的值返回
d = {'k1':'v1', 'k2':'v2'}
v = d.pop('k2')
print(v,d)
#執行結果
v2 {'k1': 'v1'}
#第二個引數設定的意義:當要刪除的物件不存在時,將第二個引數返回
#當要刪除的物件不存在時,而第二個引數未設定,則報錯
d = {'k1':'v1', 'k2':'v2'}
v = d.pop('k3','不存在')
print(v,d)

#執行結果
不存在 {'k1': 'v1', 'k2': 'v2'}

9.popitem

  • D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple
  • but raise KeyError if D is empty.
#刪除字典中最後一個元素,並將刪除的鍵和值返回
d = {'k1':'v1', 'k2':'v2'}
k,v = d.popitem()
print(d,k,v)
#執行結果:
{'k1': 'v1'} 
k2 
v2

10.setdefault

  • Insert key with a value of default if key is not in the dictionary.
  • Return the value for key if key is in the dictionary, else default.
#設定值,如果該鍵存在,則不設定,獲取當前key對應的值
d = {'k1':'v1', 'k2':'v2'}
v = d.setdefault('k1')
print(v)
#執行結果:
v1
#設定值,如果該鍵不存在,則設定,獲取設定的key對應的值
d = {'k1':'v1', 'k2':'v2'}
v = d.setdefault('k3',666)
print(v)
#執行結果:
666

11.update

更新方式一:

#更新值,按照字典的形式,將對應key的值更新
#如果無對應key,將該key和對應的值加入原字典
d = {'k1': 'v1', 'k2': 'v2'}
d.update({'k1': 'xhg', 'k2': 123, 'k3': 'v3'})
print(d)
#執行結果
{'k1': 'xhg', 'k2': 123, 'k3': 'v3'}

更新方式二:

#按照 鍵=值 得形式對原字典進行更新
d = {'k1': 'v1', 'k2': 'v2'}
d.update(k1 = 'xhg', k2 = 123, k3 = 'v3')
print(d)
#執行結果
{'k1': 'xhg', 'k2': 123, 'k3': 'v3'}

12.in

#判斷鍵是否存在字典中
d = {'k1': 'v1', 'k2': 'v2'}
v = 'k1' in d
print(v)
#判斷值是否存在在字典中
v = 'v1' in d.values()
print(v)

關於布林值的補充

None    ''     ()      {}      []      0   ==>False其餘 ==>True