zoukankan      html  css  js  c++  java
  • Python字典

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

      d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
      d['Michael']
    

    dict的实现原理和查字典是一样的。先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

    (1)一个key只能对应一个value。

    (2)把数据放入dict的方法,除了初始化时指定外,还可以通过key放入

      d['Adam'] = 67
    

    (3)避免key不存在的错误,有两种办法

    方法一:通过in判断key是否存在

      'Thomas' in d
    

    方法二:通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value

      d.get('Thomas')
      d.get('Thomas', -1)
    

    注意:返回None的时候Python的交互环境不显示结果。

    (4)删除

    删除一个key,用pop(key)方法,对应的value也会从dict中删除

      d.pop('Bob')
    

    (5)请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。

    (6)list与dict的比较

    Ⅰ、dict:

      查找和插入的速度极快,不会随着key的增加而变慢;
      需要占用大量的内存,内存浪费多。
    

    Ⅱ、list:

      查找和插入的时间随着元素的增加而增加;
      占用空间小,浪费内存很少。
    

    所以,dict是用空间来换取时间的一种方法。

    (7)dict的key必须是不可变对象

    这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)

    在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。

    博客内容用于记录自己学习后的收获,如有侵权请联系我删除
  • 相关阅读:
    tp5中的一些小方法
    jquery 中的一写常用方法
    tp5文件上传
    使用json格式输出
    第十六篇:泛型算法结构
    第十五篇:流迭代器 + 算法灵活控制IO流
    第十四篇:一个文本查询程序的实现
    第十三篇:multimap容器和multiset容器中的find操作
    poj 2516(拆点+最小权匹配)
    poj 3686(拆点+最小权匹配)
  • 原文地址:https://www.cnblogs.com/ptxiaochen/p/13619184.html
Copyright © 2011-2022 走看看