• 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。

    博客内容用于记录自己学习后的收获,如有侵权请联系我删除
  • 相关阅读:
    96. Unique Binary Search Trees1和2
    576. Out of Boundary Paths
    686. Repeated String Match判断字符串重复几次可以包含另外一个
    650. 2 Keys Keyboard
    Penetration Test
    Penetration Test
    Penetration Test
    Penetration Test
    CISSP 考试经验分享
    2019-2020 ICPC Asia Hong Kong Regional Contest J—Junior Mathematician 数位dp
  • 原文地址:https://www.cnblogs.com/ptxiaochen/p/13619184.html
Copyright © 2020-2023  润新知