day05

 dict字典
        {}表示. 每次保存两个数据 key:value, 键值对
        {"大阳哥":"赵阳", "sylar":"邱彦涛","强强":"张强强"}
        value: 任意的数据类型
        key: 必须是可哈希的(不可变)

        字典不能切片

二  字典的 增删改查

  1. 增: 1.添加内容可以直接使用key来进行添加

dic = {}
 dic['jay'] = "周杰伦"  # {'jay': '周杰伦'}
dic["jay"] = "王力宏"  # {'jay': '王力宏'}
    #如果key存在.执行的是修改操作. 如果key不存在. 执行的是新增
 print(dic)

  

2. setdefault()

 dic.setdefault("王二小") # 一个参数放的是key
 dic.setdefault("王二小", "弹溜溜") # 如果key不存在. 新增
 dic.setdefault("王二小", "上片机") # 如果存在key. 不执行任何操作
 print(dic)

 dic = {}
dic.setdefault("李嘉诚")
 dic.setdefault("李嘉诚", "房地产")
 print(dic)

 2  删  删: pop(), del, clear, popitems()

 dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
 ret = dic.pop("朱棣") # 返回value
 print(ret)
 print(dic)
 del dic['朱允炆'] # 缺点:没有返回
 print(dic)
 dic.clear() # 清空
 print(dic)
ret = dic.popitem() # 随机删.
print(ret)
 print(ret[0], ret[1])
print(dic)

  (2)  解构

a, b = (1, 5)
# print(a)
# print(b)

# k,v = dic.popitem() # dic.popitem()的结果是一个元组. 元组可以直接解构成两个值
# print(k)
# print(v)

  3改  改: 用key改, 也可以进行update

# dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
# dic["朱高炽"] = "很胖的一个独眼龙"
# print(dic)
#{'age': 58, '朱祁镇': 18, '朱棣': 55, '年轻': 18, '张无忌': '赵敏', 'name': '朱由检'}
# dic1 = {"name":'朱高炽','age':58, '朱祁镇':18}
# dic2 = {"name":'朱由检','年轻':18, '朱棣':55, '张无忌':'赵敏'}
# # update: 把dic2更新到dic1, dic1中如果存在了dic2中的key.会修改(覆盖), 如果不存在. 新增这个key:value
# dic1.update(dic2)
# print(dic1)
# print(dic2)

  4查用key查找

lst = [1, 2, 5, 8]
# print(lst[5])   # list index out of range

# dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
# print(dic['朱见深'])   # KeyError: '朱见深' key不存在
# print(dic.get("朱祁镇"))   # dic.get("朱祁镇") == dic['朱祁镇']
# get(key, default)
# print(dic.get("朱见深", "查无此人"))   # 返回none. 不存在key

# dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
# print(dic.keys())   #  dict_keys(['朱允炆', '朱祁镇', '朱棣']) 把这个当成list来看就可以了
# for el in dic.keys():
#     print(el) # 拿到了key.就可以拿value
#     print(dic.get(el)) # value


# dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
# print(dic.values())
# for el in dic.values():
#     print(el)

# dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
# print(dic.items())
# # 从dic中获取到list列表. 列表中每一项都是一个元组(key,value) 通过解构可以直接把key和value获取到
# for k,v in dic.items():
#     print(k)
#     print(v)

# wangfeng = {
#     'name':'汪峰',
#     'age':46,
#     'wife':{
#         'name':'章子怡',
#         'age':43
#     },
#     'children':[
#         {'name':'小叮当','age':10},
#         {'name':'大叮当','age':16}
#     ]
# }
#  汪峰的第二个儿子的年龄
# print(wangfeng.get("children")[1].get("age"))
# print(wangfeng.get("wife").get("name"))
# print(wangfeng.get("name"))

  3 字典嵌套 dict

dic = {
'name':['alex',2,3,5],
'job':'teacher',
'oldboy':{'alex':['python1','python2',100]}
}
# 1,将name对应的列表追加一个元素’wusir’。
dic['name'].append("wusir")
print(dic)
# 2,将name对应的列表中的alex首字母大写。
dic['name'][0] = dic['name'][0].capitalize()
print(dic)
# 3,oldboy对应的字典加一个键值对’老男孩’,’linux’。
dic['oldboy']['老男孩'] = 'linux'
print(dic)
# 4,将oldboy对应的字典中的alex对应的列表中的python2删除。
dic["oldboy"]['alex'].remove('python2')
print(dic)

  

原文地址:https://www.cnblogs.com/daien522556/p/9139543.html