Python入门(十三):字典

点击跳转
《Python入门系列目录》


  • 一组键值对的数据结构
  • 每个键对应于一个值
  • 在字典中,键不能重复
  • 根据键可以查询到值
  • 字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对
  • 字典的只能使用不可变的对象,但字典的可以使用不可变或可变的对象
  • 字典符合数据库中数据表格的概念,它能表示基于关系模型的数据库

image

1. 创建字典

  • 花括号{}创建

    • {<键1>:<值1>, <键2>:<值2>, …, <键n>:<值n>}
  • 其中,键和值通过冒号连接,不同键值对通过逗号隔开

  • dict()函数创建

    • 主要是将包含双值子序列的序列对象转换为字典类型

      dict([(1, 2), (3, 4), (5, 6)])
      dict(([1, 2], [3, 4], [5, 6]))
      
    • 直接向dict函数传入键和值创建,用 = 连接键与值

      dict(key_1=value_1, key_2=value_2, ... , key_n=value_n)
      
    • 字典中键值对中的值还可以是字典

      mdict2 = {'H': {'count': 1, 'freq': 0.2}, 'e': {'count': 1, 'freq': 0.2}, 'l': {'count': 2, 'freq': 0.4}, 'o': {'count': 1, 'freq': 0.2}}
      

2. 提取字典元素

  • dict[key]
  • in语句
    • 判断键是否存在
  • 使用字典方法get
    • dict.get(key, default=None)

3. 字典基本操作

  • 增添

    • 键访问赋值增添
      • dict_name[newkey] = new_value
      • dict_name.update(dict)
        • 将两个字典中的键值对进行合并,如果存在相同键,传入字典中的键所对应的的值会替换原有值,实现值更新的效果
  • 删除

    • del dict_name[key]
      • 删除但不会返回对应的值
    • dict_name.pop(key)
      • 删除并返回对应的值
    • dict_name.clear()
      • 变成空字典
  • 修改

  • dict_name[key] = new_value

  • 查询

    • dict_name.keys()
      • 用于获取字典中的所有键
    • dict_name.values()
      • 用于获取字典中的所有值
    • dict_name.items()
      • 用于获取字典中所有键值对
  • 其他常用操作

    • 以给定键值创建值为空的字典

      • dict.fromkeys()
      • dict.fromkeys(seq, [value])
      adict = dict.fromkeys(['name', 'age', 'sex'])
      print(adict)    # {'name': None, 'age': None, 'sex': None}
      
    • 使用dict利用已有数据创建字典

      keys = ['a', 'b', 'c', 'd']
      values = [1, 2, 3, 4]
      dictionary = dict(zip(keys, values))    # zip:返回元组
      print(dictionary)   					# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
      
    • for <变量名> in <字典名>:进行遍历

      • for i in mydict.items()
        • 打印出来的是每个键值对分别形成的元组
      • for i in mydict
        • 打印出来的是键
      • for i in mydict.values()
        • 打印出来的是值
    • 按照值进行排序

      sorted(dict_name.items(), key=lambda x: x[1], reverse=True)  # 降序
      

4. 字典与列表

  • 列表是序列,字典不是序列
  • 序列是使用索引方式获取元素的,而字典是使用键来获取元素的
  • 序列元素的插入是和索引相关的,而字典元素的插入是和键相关的。因此列表有append函数、切片功能等,而字典没有
  • 列表是一种通用的数据结构,它里面的元素可以千变万化。列表可以被视为有序列的一群东西,而字典不然,它是key-value这种结构的独特组合
    • 所以,字典对于寻找某一个key的记录,会有快速的方式来实现,这种实现方式叫做哈希(Hash)方式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值