字典内置方法

字典

基本形式

  花括号括起来的用逗号隔开的k:v键值对形式,其中key是对v的描述性数据,一般是字符串,v是真实数据,可以是任意类型数据。

      dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}

类型转换(dict()):将其余类型的数据转换为字典类型

 字典在类型转换方面的作用不大,因为它使用与其他类型的方法,转换数据类型是行不通的。下面有两种转换数据为字典的方法,供参考。

  1. 在dict关键字里用赋值形式的方式进行转换,赋值符左边作为key,右边为key对应的值
      print(dict(name = 'oliver', hobby = 'music'))  # name对应的值是oliver,hobby对应的值是read.
  1. 在dict关键字里用列表套列表或者元组的形式,每对应的两个元素成一个列表或者元组。
      print(dict([['name', 'oliver'],['hobby', 'music']]))
      print(dict([('name', 'oliver'),('hobby', 'music')]))

按key取值:索引取值、get()

 字典里的真实数据(v)是用key来访问的。访问的方式分两种。

      dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
    # 方式一 
      print(dict_name['hobby'])  # key键作为索引取key键对应的数据
      print(dict_name['add'])  # key不存在时会直接报错
    # 方式二
      print(dict_name.get('name'))  # 用get进行索引取值
      print(dict_name.get('add'))  # 用get进行索引取值,key不存在时默认会输出None
      print(dict_name.get('add', '数据不存在'))  # 用get进行索引取值,key不存在时会输出第二个参数

修改字典(可变类型)的数据

      dict_name = {'name': 'oliver', 'hobby': 'music', 'age': 23}
      dict_name['age'] = 25  # 键存在时将key键所对应的数据进行更改
      dict_name['add'] = 'shanghai'  # 键不存在时将key键和对应数据进行添加
      print(dict_name)

统计字典里的元素个数:len()

      dict_name = {'name': 'oliver', 'hobby': 'music', 'age': '23'}
      print(len(dict_name))  # 统计字典中k:v键值对的个数

成员运算: in 判断key键是否在字典中,返回布尔值

      dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
      print('add' in dict_name)  #  False
      print('name' in dict_name)  # True

删除键值对:del 、pop()

      dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
    # 方式一 :del 直接删除
      del dict_name['name']  # 删除键值对,不过与列表一样,不返回值,在字典内部删除
      print(dict_name)

    # 方式二 :pop  弹出.与列表相同,”先奸后杀“
      print(dict_name.pop('name'))  # 打印要删除的数据
      print(dict_name)  # 打印删除后的字典
  • 方式一
  • 方式二

获取所有的键(key)、值(value)、键值对(items)

      dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
      # 获取键:keys
      print(dict_name.keys())  # 获取所有键
      #获取值:values
      print(dict_name.values())  # 获取所有值
      # 获取键值对:items
      print(dict_name.items())  # 获取所有键值对

注:python3中用上述方法所获取到的数据存放在列表中,而python2中是直接用获取到的数据生成一个列表

更新字典:update()

      dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
    # update 的功能是把已经存在的键的数据进行更改,把不存在的键的k:v键值对加到末尾
      dict_name.update({'add':'上海','salary':32 ,'name':'kitty'})
      print(dict_name)

快速生成字典:fromkeys()、zip()

      # 方式一:使用fromkeys快速生成字典时,values必须是不可变类型数据(多(索引值)对一(数据)),即多个key键指向同一真实值储存空间。
      dict_name = dict.fromkeys(['pond', 'franc', 'money', 'dollars'], [])
      print(dict_name)
      # 方式二: 多对多 zip:可以依次配对,多余数据就不配对,key键和value个数相同
      dict_name = dict(zip(['pond', 'franc', 'money', 'dollars'], ['英镑', '法郎', '钱', '美元']))
      print(dict_name)
      # 个数验证
      dict_name = dict(zip(['pond', 'franc', 'money', 'dollars'], ['英镑', '法郎', '法郎', '钱', '美元']))
      print(dict_name)

筛查:setdefault()

      dict_name = {'name': 'oliver', 'hobby':'music'}
      print(dict_name.setdefault('age', 23))  # 键不存在则新增键值对 并且有返回结果是新增的v
      print(dict.name)
      print(dict.name.setdefault('hobby', 'read'))  # 键存在 则返回对应的值 不做修改
      print(dict.name)
posted @ 2022-03-10 19:24  Oliver-Chance  阅读(89)  评论(0)    收藏  举报