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
##########



原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10085547.html