数据类型总结与分类

一、可变类型与不可变类型

  可变类型:值发生改变时,内存地址不变,即id不发生变化,证明没有改变原值

  不可变类型:值发生改变时,内存地址也跟着改变,即id也发生了变化,证明改变了原值,是产生了新的值

  数字:

    >>> x = 10

    >>> id(x)

    1830448896

    >>> x = 20

    >>> id(x)

    1830448928

    # 值发生了改变,内存地址也发生了改变,即id发生了变化,证明该数字类型为不可变类型

 

   字符串: 

    >>> x = "Jy"
    >>> id(x)
    938809263920 
    >>> x = "Ricky"
    >>> id(x)
    938809264088
    # 值发生了变化,内存地址也跟着发生了变化,即id也发了变化,证明字符串类型为不可变类型

 

  列表: 

    >>> list1 = ['tom','jack','egon']
    >>> id(list1)
    486316639176
    >>> list1[2] = 'kevin'
    >>> id(list1)
    486316639176
    >>> list1.append('lili')
    >>> id(list1)
    486316639176
    # 列表中的值发生了变化,内存地址没有变化,即id没有变化,证明列表类型为可变类型

 

  元组:   

    >>> t1 = ("tom","jack",[1,2])
    >>> t1[0]='TOM' # 报错:TypeError
    >>> t1.append('lili') # 报错:TypeError
    # 元组内的元素无法修改,指的是元组内索引指向的内存地址不能被修改
    >>> t1 = ("tom","jack",[1,2])
    >>> id(t1[0]),id(t1[1]),id(t1[2])
    (4327403152, 4327403072, 4327422472)
    >>> t1[2][0]=111 # 如果元组中存在可变类型,是可以修改,但是修改后的内存地址不变
    >>> t1
    ('tom', 'jack', [111, 2])
    >>> id(t1[0]),id(t1[1]),id(t1[2]) # 查看id仍然不变
    (4327403152, 4327403072, 4327422472)

    # 元组是不可变类型,元组的值不管如何修改(如果元组中存在列表等),他的内存地址是不变化的,即id不会发生变化

  字典:

    >>>dic = {'name':'egon','sex':'male','age':18}
    >>> id(dic)
    4327423112
    >>> dic['age']=19
    >>> dic
    {'age': 19, 'sex': 'male', 'name': 'egon'}
    >>> id(dic)
    4327423112

 

    # 字典中的值发生了改变,但是内存地址没有变化,即id没有发生变化,证明字典为可变类型

    

 

 二、数据类型的总结

  

 

   注:集合没有放在上面,原因是集合是按照一个整体来进行使用的,不是单个进行使用的,集合主要是运算和去重

    集合其实也是存放多个值的,集合也是可变类型

 

posted @ 2020-12-05 16:29  A熙  阅读(145)  评论(0)    收藏  举报