美文网首页
跟着廖老师学Python(10):Python基础6 - dic

跟着廖老师学Python(10):Python基础6 - dic

作者: 掠光者 | 来源:发表于2017-04-06 16:49 被阅读0次

    续:第(9)节
    本文所有引用均来自廖雪峰老师的网站。转载请说明出处。


    8. dict

    dict 全称为dictionary,其他语言中也称为map,使用key-value对存储,具有极快的查找速度。

    例如:
    >>> d = { 'A' : 95, 'B' : 90, 'C' : 97}
    >>> d['A']
    95

    注意:d

    1. dict定义时可以赋值,也可以只声明不赋值:
      d = {}
      classmates = {}

    2. 注意括号的种类。dict定义时使用的是花括号{},在取值时用的是[],而谈到小括号(),则是在之前所谈的tuple中有用到。

    3. 可以使用d['A']进行取值,使用d['A'] = 98进行重新赋值。

    4. 如何查询某个key是否在dictionary中?
      法1:通过in方法:
      >>> 'D' in d
      False
      法2:get方法:
      >>>d.get('A', x)
      or
      >>>d.get('A')
      返回结果是:若存在这个key,则返回其对应的value值。若不存在,则返回x这个值。如果不写x这个参数,则返回None值,而这个None值是不会在终端中显示出来的。

    例子-源代码 运行结果

    注意:

    · dict内部存放的顺序和key放入的顺序是没有关系的
    · dict是用空间来换取时间的一种方法
    · dict的key必须是不可变对象。因为计算value的存储位置是通对key值进行hash而得到的。


    8. set

    set和dict类似,也是一组key的集合,但不存储value。
    由于key不能重复,所以,在set中,没有重复的key。
    要创建一个set,需要提供一个list作为输入集合。

    例如:
    >>> s = set ( [2, 1, 3] )
    >>>s
    {1, 2, 3}

    注意:传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。
    set可以看成是数学上的集合,所以可以进行交集、并集等操作。

    set例子-源代码
    运行结果

    set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。


    补充:不可变对象

    1. 对于不变对象(例如字符串、整数、tuple等)来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
    2. list是可变对象,可以通过sort()方法进行内部对象的排序整理。
    3. 有一个replace方法可以将字符串中的一个字母全部替换成另一个字母。

    总结:

    dict和set中key的类型必须是不可变的。因为它要用于hash来得到value的存储位置。

    • end of Python 基础 -

    相关文章

      网友评论

          本文标题:跟着廖老师学Python(10):Python基础6 - dic

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