字典——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(序列):将序列转化为字典,用转换的字典更新指定的字典。(不存在就添加,存在就修改)

猜你喜欢

转载自www.cnblogs.com/nongma-reddy/p/13154978.html