zoukankan      html  css  js  c++  java
  • python---基本数据类型 dict(字典)

    1. 什么是字典

        字典是python中唯一的映射类型, 由{ } 括起来的键值对组成,在dict中key是唯一的.字典是以key:value的形式来保存数据, 字典存储数据的时候是用的hash值来存储. 算法不能变(python的)

          数据必须是不可变的(可哈希). 字典的key必须是可哈希的(不可变).

          已知的可哈希的(不可变)的数据类型: int , str , tuple , bool

          不可哈希(可变)的数据类型: list , dict , set

             语法:     

           dict = {key: value, key: value ... }     

        注意:     

          key必须是不可变(可哈希)的, value没有要求,可以保存任意类型的数据

    2. 字典的增删改查

        dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的. 而hash表不是连续的.

      所以不能进行切片工作,它只能通过key来获取dict中的数据

      1.增加

      dic[key] = 值
        dic.setdefault(key)
    
    
        dic = {}
        dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组
        合进dict
        dic['age'] = 18
        print(dic)
        # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
        dic.setdefault('李嘉诚') # 也可以往⾯设置值.
        dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会
        起作⽤
        print(dic) 

      2.删除(pop , popitem 随机删除, clear 清空)

    ret = dic.pop("joy")
        print(ret)
       
      del dic["jay"]
      print(dic)
        
      # 随机删除. 
      ret = dic.popitem() 
         
      # 清空字典中的所有内容 
      dic.clear()

      3. 改 ( update )

      .update()
      dic = {"id": 123, "name": 'sylar', "age": 18} 
      dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"} 
      dic.update(dic1) 
      # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增. 
      print(dic) 
      print(dic1)

      4. 查询

      print(dic['name']) # print(dic['t']) 
      # 报错 print(dic.get("ok")) print(dic.get("t")) 
      # None print(dic.get("t", "⽜B")) 
      # ⽜B

      5. 字典的其他相关操作

    . keys() 获取到所有的键
    . values() 获取到所有的值
    . items() 拿到所有的键值对
    
    #解构, 注意数量必须匹配
    a , b = 1, 2
    print(a , b)
    
    (c , d) =  3 , 4
    print( c , d)

    3. 字典的嵌套   

      字典的嵌套. 字典套字典

    # 字典的嵌套  .get(key) 根据key取value 
    dic1 = {
    "name": "汪峰",
    "age": 18,
    "wife": {
    "name": '章子怡',
    "age": 28
    },
    "children": ['第一个毛孩子', '第⼆个毛孩子'],
    "desc": '峰哥不不会告我吧. 没关系. 我想上头条的'
    }
    print(dic1.get("wife").get("name"))
    print(dic1.get("children"))
    print(dic1.get("children")[1])

    5. 集合(不重要). 去重复

      集合中的元素是不重复的. 必须是可哈希的(不可变), 字典中的key
      空集合:set()
      空元组:tuple()
      空列表:list()
      非空集合: {123}集合, 集合其实就是不存value的字典

    # 遍历字典两套方案
    dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    # 1. 使用for循环直接遍历字典的key
    # for key in dic:
    #     print(key)
    #     print(dic[key])
    
    
    # 2. 可以使用字典的items()+解构可以直接获取到key和value
    # for k, v in dic.items():
    #     print(k)
    #     print(v)
  • 相关阅读:
    内存访问可以使用段地址+冒号+偏移地址的形式吗?
    更改Word、PowerPoint、Excel(Office套件)的主题为暗黑色
    埃拉托斯特尼筛法找质数
    引水入城
    线段树 区间乘
    会场预约
    借教室 线段树and二分
    数轴染色
    线段树 区间加
    树集
  • 原文地址:https://www.cnblogs.com/robertx/p/10046379.html
Copyright © 2011-2022 走看看