• 技术文章 >后端开发 >Python教程

    python中列表长度可变吗

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-06-24 15:15:04原创7444

    python中列表长度可变吗?下面给大家介绍一下python中可变和不可变的类型:

    可变、不可变
    可变/不可变类型,指的是:内存id不变,type也不变的前提下,value是否是可变的。
    int()和str()都是不可变类型
    列表、字典是可变类型

    对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如:

    >>> a = ['c', 'b', 'a']>>> a.sort()>>> a
    ['a', 'b', 'c']

    相关推荐:《python视频教程

    而对于不可变对象,比如str,对str进行操作呢:

    >>> a = 'abc'>>> a.replace('a', 'A')'Abc'>>> a'abc'

    虽然字符串有个replace()方法,也确实变出了'Abc',但变量a最后仍是'abc',应该怎么理解呢?

    我们先把代码改成下面这样:

    >>> a = 'abc'>>> b = a.replace('a', 'A')>>> b'Abc'>>> a'abc'

    要始终牢记的是,a是变量,而'abc'才是字符串对象!有些时候,我们经常说,对象a的内容是'abc',但其实是指,a本身是一个变量,它指向的对象的内容才是'abc':

    aaa.jpg

    当我们调用a.replace('a', 'A')时,实际上调用方法replace是作用在字符串对象'abc'上的,而这个方法虽然名字叫replace,但却没有改变字符串'abc'的内容。相反,replace方法创建了一个新字符串'Abc'并返回,如果我们用变量b指向该新字符串,就容易理解了,变量a仍指向原有的字符串'abc',但变量b却指向新字符串'Abc'了:

    sss.jpg

    所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

    以上就是python中列表长度可变吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 列表长度
    上一篇:python支持char吗 下一篇:python集合是可变的吗
    Web大前端开发直播班

    相关文章推荐

    • 学python一定要会linux吗• python程序都可以运行在哪里• python可以写微信小游戏吗• python可以自学吗

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网