zoukankan      html  css  js  c++  java
  • python学习之那些由print引起的困惑

    该文索所起之因:在练习列表的操作时,要输出一波操作后的列表,但是一直让本人耿耿于怀的时下边的这个现象:

    红色框框里是字符串,黄色框框里是列表,同样是只对一个元素进行的操作,为啥输出时字符串是作为一个整体输出,而列表却输出了一个“None”,什么情况?于是多次实验,不管是remove还是extent等等,都输出一个“None”。“None”“None”“None”你就只会一个“None”吗?竟然给我一个空?一万个“WTF”油然而生。
    

    ​ 难受,欲求其果,遂翻遍整个百度,扑天盖地都是关于string和list的使用,结果然并卵。思定,是我见识太短浅?不对,一定是我思考的方式不对,那比较看看吧,目前我掌握的信息有:

    1. 字符串是不可变类型,而列表是可变类型;
    2. 对字符串进行相关的操作时,都会在内存中新建一个新的字符串做结果;
    3. 对列表进行操作时,都是直接是在列表本身进行的;

    hold on ,hold on !有点意思,罪魁祸首是不是要从这里查起呢?于是翻出《Learning Python 5th Edition 》--不愧是一本神书,Look what I get:

    ​ 果不其然,numbers,strings,tuples都是immutable,并且they cannot be changed inplace after they are created。而lists,dictionaries and sets are not--they can be changed in place freely。

    ​ 实施正如所想,之所以对字符串进行操作后,哪怕仅仅只是对一个元素进行了修改,都是会得到一个新建的字符串,我称其为影分身,所以输出时,它可以代替实体显示在我们面前;而列表不一样,所有的操作都是在列表本体直接进行,它没有影分身任我们宰割,所以输出其操作流程时,我们只能得到一个空响。

    ​ 真相大白,水落石出,一身轻松!

    <<<<<<<<表达如有不妥之处,还请各路大神指正!

    仅供参考,欢迎指正
  • 相关阅读:
    Windows下安装并设置Redis
    OpenGL纹理上下颠倒翻转的三种解决办法
    如何计算android设备的屏幕物理尺寸
    VS2010中使用QtOpenGL出现 unresolved external symbol __imp__glClear@4 referenced in function之类的错误
    VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
    7月份文章回顾
    NSIS脚本根据操作系统版本动态决定默认安装目录
    WinDriver的一些
    〔池化纲领〕也及链表
    多道程序设计〕协程构造
  • 原文地址:https://www.cnblogs.com/jjzz1234/p/10986279.html
Copyright © 2011-2022 走看看