python學習之字典

字典是另外一種可變容器模型,且可存儲任意類型對象。字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,字典屬於dict類,格式以下所示:python

一、基本機構

info = {
    "k1": "v1", # 鍵值對
    "k2": "v2"  # 鍵值對
}

 二、字典的value能夠是任何值

#!/usr/bin/env python
info = {
    "k1": 18,
    "k2": True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
print(info)

 

結果:spa

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

三、列表、字典不能做爲字典的key

#!/usr/bin/env python
info ={
    1: 'asdf',
    "k1": 'asdf',
    True: "123",
    # [11,22]: 123
    (11,22): 123,
    # {'k1':'v1'}: 123

}
print(info)

 

結果:code

{1: '123', 'k1': 'asdf', (11, 22): 123}

四、索引方式找到指定元素

#!/usr/bin/env python
info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
v = info['k3'][5]['kk3'][0]
print(v)

 

結果:對象

11

 

五、字典支持 del 刪除

#!/usr/bin/env python
info = {
    "k1": 18,
    2: True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
del info['k1']

del info['k3'][5]['kk1']
print(info)

 

結果:blog

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

 

六、支持for循環

#!/usr/bin/env python
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)

for item in info.keys():
    print(item)

for item in info.values():
    print(item)

for item in info.keys():
    print(item,info[item])

for k,v in info.items():
    print(k,v)
info ={
    "k1": 'asdf',
    True: "123",
    # [11,22]: 123
    (11,22): 123,
    # {'k1':' v1'}: 123

}
print(info)

 

結果:索引

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)
{'k1': 'asdf', True: '123', (11, 22): 123}

 七、get方法

根據key去取值,若是沒有key則返回None,也能夠用來表示當要取的key不存在時,用默認的值返回。get

 
 
dic ={
"name":'wang',
"age":23
}
v = dic.get('name')
v1=dic.get('age1')
v2=dic.get('age1',100)
print(v,v1,v2)


結果:
wang None 100

 

八、pop方法,刪除指定的key

dic ={
    "name":'wang',
    "age":23
}
dic.pop('name')
print(dic)


結果:
{'age': 23}

 

九、setdefault

若是key已經存在,不設置值,獲取當前key對應的值it

若是key不存在,設置值,獲取當前key對應的值for循環

dic ={
    "name":'wang',
    "age":23
}
v=dic.setdefault('name',"zhang")
print(dic,v)

dic1 ={
    "name":'wang',
    "age":23
}
v1=dic1.setdefault('name1',"zhang")
print(dic1,v1)

結果:
{'name': 'wang', 'age': 23} wang
{'name': 'wang', 'name1': 'zhang', 'age': 23} zhang

 

十、keys、values方法

dic ={
    "name":'wang',
    "age":23
}
v=dic.keys()
v1=dic.values()
print(v,v1)

結果:
dict_keys(['name', 'age']) dict_values(['wang', 23])
相關文章
相關標籤/搜索