美文网首页
python的可变类型和不可变类型

python的可变类型和不可变类型

作者: 酸甜柠檬26 | 来源:发表于2019-11-27 21:24 被阅读0次

    2019-06-07
    此知识点是在学习pandas的apply函数中:如何利用applymap将str转化成int时王提到的问题。
    可变类型:list dict
    不可变类型:number str tuple bool
    python中的不可变数据类型,即不允许变量的值原地发生变化,一但值发生了变化,则相当于新建了一个对象,id会变。
    所以,可变类型:值变化,id不变化;不可变类型:值变化,id变化。

    如何确定一种数据类型是可变的还是不可变的:
    根据上面的介绍,只需在改变value值的同时,使用id()函数查看变量id是否变化即可。
    number:

    >>> id(num1)
    140723828876336
    >>> num1 = 9
    >>> id(num1)
    140723828876368
    

    以上id发生了变化,所以number不可变。
    str:

    >>> a = 'huang'
    >>> id(a)
    2039740156144
    >>> a = 'lin'
    >>> id(a)
    2039740157824
    

    以上id发生了变化,所以str不可变。
    tuple:
    元组元素是无法修改的,所以元组不可变。
    list:

    >>> y = [1,'a',0.9]
    >>> id(y)
    2039739966088
    >>> y[0] = 9
    >>> y
    [9, 'a', 0.9]
    >>> id(y)
    2039739966088
    

    列表中的元素发生变化时,id未变,所以list可变。
    dict:

    >>> d = {'a':1,'b':2}
    >>> id(d)
    2039742751512
    >>> d['a'] = 5
    >>> d
    {'a': 5, 'b': 2}
    >>> id(d)
    2039742751512
    

    dict中的value发生变化时,id未变,所以dict可变。

    相关文章

      网友评论

          本文标题:python的可变类型和不可变类型

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