• 字典——python基础篇


    字典是什么

    字典是无序、可变的容器型数据类型,元素以键值对存储,以键获值。

    什么时候用字典:需要保存多个数据,并需要对数据(多个数据的意义不同)进行区分。

    • 字典是容器型数据类型,容器的标志{},多个元素用逗号隔开。

    • 字典的元素都是键值对,以键获值。{key1:value1,key2:value2,...}

    • 字典中元素: 键值对

      • 键 - 不可变;唯一(一般是字符串)
      • 值 - 任何类型的数据;可重复

    字典的增删改查

    查 - 获取字典的值

    • 获取单个元素对应的值:

      • 字典[key]: 获取字典中指定key对应的值(如果key不存在报错)

      • 字典.get(key): 获取字典中指定key对应的值(如果key不存在返回None)

        # 获取单个值
        # 方法一:
        dog_name = dog['name']
        print(dog_name)  # 程程
        # 没有对应的key会报错
        # print(dog['height'])
        
        # 方法二:
        get_name = dog.get('name')
        print(get_name)
        # 没有对应的key不会报错
        print(dog.get('fan'))
        # key不存在时,放回默认值
        print(dog.get('fan', 0))
        """
        程程
        None
        0
        """
        
    • 遍历:

      • 方法一: 变量取到的值是字典中的key。(此方法效率最高)

        ​ for 变量 in 字典:

        ​ 循环体

      • 方法二: 遍历获取所有的值

        ​ for 变量 in 字典.values():

        ​ 循环体

      • 方法三: 获取所有的key和value

        ​ for 变量1,变量2 in 字典.items():

        ​ 循环体

      print("====遍历====")
      print("====方法一=====")
      # 遍历
      # 方法一
      for i in dog:
          print(dog[i])
      
      print("====方法二=====")
      # 方法二
      for i in dog.values():
          print(i)
      
      print("====方法三=====")
      # 方法三
      for k, v in dog.items():
          print(k, ':', v)
      
      
      """
      ====遍历====
      ====方法一=====
      程程
      3
      哈士奇
      公
      20
      ====方法二=====
      程程
      3
      哈士奇
      公
      20
      ====方法三=====
      name : 程程
      age : 3
      breed : 哈士奇
      gender : 公
      weight : 20
      """
      

    增 - 添加键值对

    • 字典[key]=value:如果key存在,就将key对应的值,修改成指定的值。如果key不存在,就是添加键值对。
    • 字典.setdefault(key,value):不能修改,只能增加,如果key已存在,不添加操作。

    删除

    • del 字典[key]:删除指定key对应的键值对。(key不存在,会报错)
    • 字典.pop(key):取出指定key对应的值,并放回指定的值。
    • 字典.popitem():随机取出指定key对应的键值对,并放回键值对。

    字典相关的操作

    • 字典不支持加法和乘法运算
    • 字典只支持比较相等,不支持比较大小。
      • 保证键值对的个数、值一致,为True,否则False
    • innot in :判断字典中是否存在指定的key。

    相关函数

    • len(字典): 统计字典中键值对的个数
    • dict(数据): 将指定的数据转化成字典。
      • 要求:
        1. 是容器型数据类型
        2. 数据中元素是有且只有两个元素的容器(小容器)
        3. 小容器中的第一个元素是不可变类型。

    字典转成其他的数据类型

    • bool(字典) - 空字典会转换成False,其他都是True
    • list(字典):将字典的key作为列表的元素
    • tuple(字典):将字典的key作为元组的元素
    • str(字典):将字典的{}和键值对全部转换为字符串

    相关的方法

    • 字典.clear():将字典清空
    • 字典.copy():复制一个字典并放回。(也复制了字典的内容)
    • 字典.fromkeys(序列)/dict.fromkeys(序列):创建新的字典,字典的key传入序列中的元素,值是固定的None。(此序列元素类型不可变)
    • 字典.fromkeys(序列,值)/dict.fromkeys(序列,值):创建新的字典,字典的key传入序列中的元素,值是指定的值。
    • 字典.items():获取字典所有的key和value,返回一个容器,容器中的元素是元组,每个元组对应一个键值对。(不是列表)
    • 字典.keys():获取字典所有的key,返回一个容器。(不是列表)
    • 字典.values():获取字典所有的value,返回一个容器。(不是列表)
    • 字典.update(序列):将序列转化为字典,用转换的字典更新指定的字典。(不存在就添加,存在就修改)
  • 相关阅读:
    BZOJ1786[AHOI2008]Pair配对
    [Accepted][POJ1986]Tarjan求lca
    BZOJ1265[AHOI2006]斐波卡契的兔子
    POJ2631 树最长路径
    BZOJ1406[AHOI2007密码箱]
    POJ3129计算几何水题
    [AHOI2005]SHUFFLE题解
    三分法求极值模板
    File Download Using JavaScript
    云计算IDC服务
  • 原文地址:https://www.cnblogs.com/nongma-reddy/p/13154978.html
Copyright © 2020-2023  润新知