python基础-字典

发布时间 2023-12-03 18:26:59作者: zp0513

1、字典定义

  • 字典是一种可变的容器,可以存储任意类型的数据

  • 字典中的每个数据都是用"键" (key) 进行索引,而不像序列可以用下标进行索引【集合可以用下标进行搜索】
  • 字典中的数据没有先后关系,字典的存储是无序的【集合set存储也是无序的】

  • 字典的表示方式是以{} 括起来,以冒号(:)分割的键值对,各键值对之间用逗号分隔开

  • 字典的键一般是唯一的,如果重复最后的一个键值对会替换前面的

#创建空字典
d = {}    # 空字典
d = dict() # 空字典
#非创建空字典
dic1 = {'name': 'cgk', 'age': 20, 'sex': 'male'}
dic2 = dict((('name', 'cgk'),))

2、字典的方法

  • 增删改查
  • #增
    dic = {"name":"张三","年龄":"30","性别":""} print(dic
    #修改
    dic["jay"] = "周杰伦"
    dic["jay"] = "周杰伦1"  #覆盖前面的key的value值
    print(dic)
    #删除
    dic = dict()
    dic.setdefault("tom","213") #如果前面tom有默认值,则setdefault就不起作用了
    print(dic)
    
    dic.pop("tom")
    print(dic)
    #查询 查之前请确保key值中有,否则报错
    print(dic["jay"])          #如果key不存在,程序会报错,当key确定的时候考虑使用
    print(dic.get("jay"))      #如果key不存在,程序返回none

3、字典的应用

  • 实例1
dic = {
    "赵四": "会跳舞",
    "刘能": "会唱歌",
    "大脚": "搞对象",
    "大脑袋": "瞎折腾。。。。",
}
name = input("请输入你想知道人的名字:")
val = dic.get(name)
if val is None:
    print("您输入的名字不存在,请重新输入")
else:
    print(val)

请输入你想知道人的名字:赵四
会跳舞
字典的循环和嵌套
dic = {
    "赵四": "会跳舞",
    "刘能": "会唱歌",
    "大脚": "搞对象",
    "大脑袋": "瞎折腾。。。。",
}
# 1、可以用for循环,直接拿到key
for key in dic :
    print(key,dic[key])

输出结果
赵四 会跳舞
刘能 会唱歌
大脚 搞对象
大脑袋 瞎折腾。。。。
  • 获取字典的key和value的常用方式
  • #2、把所有的key全部保存到一个列表中
    print(list(dic.keys()))         #拿到所有的key  ['赵四', '刘能', '大脚', '大脑袋']
    #3、把所有的value都放到一个列表中
    print(list(dic.values()))        #拿到所有的value ['会跳舞', '会唱歌', '搞对象', '瞎折腾。。。。']
    
    # 4、直接拿到所有的key和value
    for item in dic.items():
        key = item[0]
        value = item[1]
        print(key,value)

    删除字典中的元素

  • dic = {
        "赵四": "会跳舞",
        "刘能": "会唱歌",
        "大脚": "搞对象",
        "大脑袋": "瞎折腾。。。。",
    }
    temp = []
    for key in dic:
        if key.startswith(""):
            temp.append(key)  #把要删除的key的值,存放到一个零时的列表中
           # dic.pop(key)  #RuntimeError: dictionary changed size during iteration   不能直接删除字典里的值,否则报错
    for t in temp:
        dic.pop(t)
    print("删除的人物是:",dic)

    多层字典嵌套

  • s= {
        'resultCode': '1',
        'resultMsg': 'success',
        'reqId': '1e4b9495-ba19-4005-9d9f-42107cb33ffb',
        'systemTime': '1653559664014',
        'videoInfo':
            {'playSta': '1',
                      'video_image': 'https://image2.pearvideo.com/cont/20220524/cont-1763204-12680765.png',
            'videos':
                 {'hdUrl': '',
                  'hdflvUrl': '',
                  'sdUrl': '',
                  'sdflvUrl': '',
                  'srcUrl': 'https://video.pearvideo.com/mp4/adshort/20220524/1653559664014-15884803_adpkg-ad_hd.mp4'
                  }
             }
    }
    print(type(s))  #<class 'dict'>字典
    print(s["resultMsg"])  #success
    print(s["videoInfo"]["video_image"])  #https://image2.pearvideo.com/cont/20220524/cont-1763204-12680765.png
    print(s["videoInfo"]["videos"]["srcUrl"])  #https://video.pearvideo.com/mp4/adshort/20220524/1653559664014-15884803_adpkg-ad_hd.mp4

4、总结

  • 字典是以键值对的方式进行存储的
  • 字典的表示方式 {key1:value1, key1:value1,key1:value1}