基本數據類型-----字典(Dictionary)


一、字典(Dictionary)

    字典是另一種可變容器模型,且可存儲任意類型對象。

    值可以取任何數據類型,也可以嵌套多層,但鍵必須是不可變的,如字符串,數字或元組,這些鍵會轉為hash值存儲起來;鍵不可以列表,布爾值,字典,因為這些不可以轉為hash值存儲起來

    字典是無序的,每次用print函數輸出的結果順序都不一定相同。

    字典的每個鍵值 key=>value 用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:

info = {'k1' : 'v1' ,  'k2' :  123 }
鍵 值 鍵 值

 

  • 索引取值
info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
v = info['k1']
print(v)
v = info[2]
print(v)
v = info['k3'][5]['kk3'][0]         ##多層嵌套的取值 print(v)

輸出:

  18
  True
  11

 

  • del刪除
info = {
    "k1": 18,                 ##被刪除部分 2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',     ##被刪除部分
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}

輸出:{2: True, 'k3': [11, [], (), 22, 33, {'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}

 

  • for循環
info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}

for item in info:               
    print(item)                     ##默認輸出所有的key

for item in info.keys():
    print(item)                     ##輸出所有的key
 
for item in info.values():
    print(item)                     ##輸出所有的values

for item in info.keys():
    print(item,info[item])          ##輸出所有的key,並使用索引同時輸出key所對應的value

for k,v in info.items():
    print(k,v)                      ##同時取出key和value,分別賦值給k和v,然后輸出

輸出:

k1
2
k3
k4
k1
2
k3
k4
18
True
[11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
(11, 22, 33, 44)
k1 18
2 True
k3 [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
k4 (11, 22, 33, 44)
k1 18
2 True
k3 [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
k4 (11, 22, 33, 44)

 

二、python中字典的函數&方法

  內置函數

  內置方法

 

1.根據序列,創建字典,並指定統一的值

v = dict.fromkeys(["k1",123,"999"],123)     #前邊的列表是所有的key, 后邊的123是值,將分別賦給三個key,即三個key的value都是123
print(v)

輸出:

 

2.根據Key獲取值,key不存在時,可以指定默認值(None)

dic = {
    "k1": 'v1',
    "k2": 'v2'
}

# v = dic['k11']
# print(v)                           ##使用索引,當key 'k11' 不存在時就會報錯,所以該方法有弊端

#v = dic.get('k11')
#print(v)                            ##使用get方法,當key不存在時會輸出None

#v = dic.get('k11',123)
#print(v)                            ##get方法可以添加兩個參數,當指定的key不存在時,get方法會將括號內的第二個參數賦給key,當key已經存在時,第二個參數將會失效

 

3.刪除

  • 刪除(用一個參數接收)
dic = {
    "k1": 'v1',
    "k2": 'v2'
}
v = dic.pop('k1')         ##將取出的k1的值賦給v
print(dic,v)

dic = {
    "k1": 'v1',
    "k2": 'v2'
}
v = dic.pop('k11',90)     ##當指定的key(k11)存在時,指定的value(90)會失效,k11不存在時,v等於指定的value90
print(dic,v)

輸出:

 

  • 刪除(用兩個參數接收)
dic = {
    "k1": 'v1',
    "k2": 'v2'
}
k,v = dic.popitem()    ##隨機刪除一對 print(dic,k,v)

輸出:

 

 4 .設置值

已存在,不設置,獲取當前key對應的值
不存在,設置,獲取當前key對應的值
dic = {
    "k1": 'v1',
    "k2": 'v2'
}
v = dic.setdefault('k1','123')     ##當key存在時,后邊指定的值會失效
print(dic,v)
v
= dic.setdefault('k11','123') print(dic,v)

輸出:

 

5.更新(update)

dic = {
    "k1": 'v1',
    "k2": 'v2'
}
dic.update({'k1': '111111','k3': 123})     ##已存在的更新,不存在的加上去
print(dic)
dic.update(k1=123,k3=345,k5="asdf")
print(dic)

輸出:

 

三、補充

1.字符串

tempalte = "i am {name}, age : {age}"
#v = tempalte.format(name='alex',age=19)                ##和下面的方法效果相同
v = tempalte.format(**{"name": 'alex','age': 19})       ##加入兩個**即可將字典加入 print(v)

輸出:

 

2.字典

使用in時:

dic = {'k1' : 'v1' , 'k2' : 'v2' }

v = 'k1'  in   dic
print(v)     ##輸出True

v = 'v1'  in   dic
print(v)     ##輸出False

判斷values時,使用v = 'v1'  in  dic.values()

 

3.布爾值

bool值只有 False(0) 和True(1) 兩種

bool(...)經常用來判斷真假

bool值為False常見的有:0 、None、空字符串、空字典、空列表、空元組其他都是True

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM