Python HW4

1265-张同学

发表文章数:58

首页 » Python » 正文

知识点

  1. 创建字典:
    • {}, dict()
    • dict(zip(k,v))
    • dict.fromkeys(a:list)
  2. a.update(b) a,b都为dict 没有添加,有则覆盖
  3. 字典删除
    • clear()删除所有键值对
    • del(a[‘name’])删除元素
    • b = a.pop(‘age’)删除元素并返回该key对应的value
    • popitem()字典无序所以随机移除元素
  4. 字典核心底层逻辑:
    字典对象的核心是散列表。散列表是一个稀疏数组,每个单元叫bucket,每个bucket有两部分,一是键对象的引用,一是值对象的引用。
    比如: a[‘name’] = ‘Gaoqi’ 第一步先计算’name‘的散列值:hash(),第二步使用bin()转化为二进制编码之后按固定位数寻找,找到非空的位置即可放入键值对。
    存的时候同理,bin(hash())依次固定位数取,找到非空位置后判断该位置的bin(hash(key))是否与所求相等。
  5. 字典总结
    1. 键必须可散列
      • 数字,字符串,元组均可散列
      • 自定义对象支持以下三点:
        • 支持hash()
        • 支持通过__eq__()方法检测相等性
        • 若a == b为真,则hash(a) == hash(b)为真
    2. 字典在内存中开销巨大,空间换时间
    3. 键查询速度快
    4. 往字典里添加新键,可能导致扩容,导致散列表中键的次序变化。因此,不要在遍历字典的同时修改字典。
  6. 集合底层实现就是字典,只有字典的键对象。集合相关操作:
    • a|b 并集 a.union(b)
    • a-b 差集 a.difference(b)
    • a&b 交集 a.intersection(b)

拜师教育学员文章:作者:1265-张同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python HW4》 发布于2020-08-26

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录