美文网首页
认识字典(一)

认识字典(一)

作者: 右哼哼丨左哼哼 | 来源:发表于2018-01-31 14:08 被阅读22次

    dict

    • python内置的一种数据结构
    • 无序
    • 可更改

    类似于C++语言的map,存键值对,有很快的查找速度。比如根据身份证号查找某个人的名字,根据学号查找学生成绩单。用list遍历也可以得到结果,但是太慢了,list就好像你在一个小区找人,你一家一家敲门。dict就好像你直接按照地址X栋X单元X层直接找。
    dict是典型的用空间换时间的例子。会占用大量内存,但是查找、插入速度很快,不会随着元素数量增加而增加。
    list则是时间换空间的例子,不会占用大量内存,但是随着元素数量增多,查找时间会变很长。

    声明

    >>>name = {1: "alan", 2: "bob", 3: "lucy"}
    

    查找

    >>>name[1]
    'alan'
    >>>name[2]
    'bob'
    >>>name[3]
    'lucy'
    >>> name[5]
    Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
    KeyError: 5
    

    为了避免出现报错的情况我们一般事先判断一下这个key是否在字典中

    >>> 5 in name
    False
    

    也可以用get方法取,如果key不存在,会返回None或者自己定义的默认值

    >>> name.get(5)
    >>> name.get(5, "default")
    'default'
    

    更改

    >>> name[4] = "mac"
    >>> name
    {1: "alan", 2: "bob", 3: "lucy", 4: "mac"}
    

    删除

    >>> name.pop(1)
    'alan'
    >>> name
    {2: 'bob', 3: 'lucy'}
    

    元素个数

    >>> name = {1: "alan", 2: "bob", 3: "lucy"}
    >>> len(name)
    3
    

    获取所有Key

    >>> name = {1: "alan", 2: "bob", 3: "lucy"}
    >>> name.keys()
    [1,2, 3]
    

    获取所有value

    >>> name = {1: "alan", 2: "bob", 3: "lucy"}
    >>> name.values()
    dict_values(['alan', 'bob', 'lucy'])
    

    获取所有键值对

    >>> name = {1: "alan", 2: "bob", 3: "lucy"}
    >>> name.items()
    dict_items([(1, 'alan'), (2, 'bob'), (3, 'lucy')])
    

    相关文章

      网友评论

          本文标题:认识字典(一)

          本文链接:https://www.haomeiwen.com/subject/rmrxzxtx.html