day 12 字典的魔法

 

字典 dict

注意:K值相同的时候,只能保留一个

 

1、基本机构
info = {
    "k1": "v1", # 键值对
    "k2": "v2"
}

 

 

2 字典的value可以是任何值
info = {
    "k1": 18,
    "k2": True,
    "k3": [
        11,
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
print(info)

 

 

 

3 布尔值(1,0)、列表、字典不能作为字典的key

 

info ={
    1: 'asdf',
    "k1": 'asdf',
    True: "123",
    # [11,22]: 123   列表不可以作为key
    (11,22): 123,    元组可以,因为元组不可以被修改
    # {'k1':'v1'}: 123   字典也不可以作为key

}
print(info)

 

 

 

4,字典是无序的

 

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

 

 

5、索引方式找到指定元素,不能通过切片找(因为是无序的)



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)

 


6 字典支持 del 删除

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)

 

 

 

 

7,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: 默认for循环的时候只有key print(item)


for item in info.keys(): 获取字典中的key print(item) for item in info.values(): 获取字典中的values print(item) for item in info.keys(): 键值对取出来 print(item,info[item]) for k,v in info.items(): 把键值对都取出来,优化的方法 print(k,v)

 

 

True 1  False 0
info ={
    "k1": 'asdf',
    True: "123",
    # [11,22]: 123
    (11,22): 123,
    # {'k1':' v1'}: 123

}
print(info)

 

 

#######################################字典的方法############################################################

 

1,clear

 

2,copy 浅拷贝

 

3、根据序列,创建字典,并指定统一的值

dictdic = {    "k1": 'v1',    "k2": 'v2' }1 根据序列,创建字典,并指定统一的值v = dict.fromkeys(["k1",123,"999"],123)   第一个值作为key  第二个值作为valueprint(v)

 

 

 

4,get     

根据Key获取值,key不存在时,可以指定默认值(None)

# 2 根据Key获取值,key不存在时,可以指定默认值(None)
# v = dic['k11111']  如果我的key不存在,会执行报错
# print(v)


# v = dic.get('k1',111111) 如果取得key不存在,默认把111111给他,如果存在,11111直接忽略。这个要记清楚 # print(v)

 

 

5,items

 

6.keys

 

7,vlaus

 

8,

 

# 3 删除并获取值
# dic = {
#     "k1": 'v1',
#     "k2": 'v2'
# }
v = dic.pop('k1')    删除k1的值,指定k值删除。

# v = dic.pop('k1',90)   当key不存在的事,移除不了,但是会返回默认值90
# print(dic,v)


# k,v = dic.popitem()  在字典中随机删除,并且取到
# print(dic,k,v)

 

 

9,setdefault  设置值

# 4 设置值,
# 已存在,不设置,获取当前key对应的值
# 不存在,设置,获取当前key对应的值
# dic = {
#     "k1": 'v1',
#     "k2": 'v2'
# }
# v = dic.setdefault('k1111','123')
# print(dic,v)

 

 

 

10 更新

已经存在的覆盖上去

不存在的,更新上去

5 更新
dic = {
    "k1": 'v1',
    "k2": 'v2'
}
# dic.update({'k1': '111111','k3': 123})  第一种方法
# print(dic)
dic.update(k1=123,k3=345,k5="asdf")  第二种方法
print(dic)

 

 






# 6 keys() 7 values() 8 items() get update
##########



 

posted @ 2018-12-07 22:09  行者Sun  阅读(155)  评论(0编辑  收藏  举报