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

红色框框里是字符串,黄色框框里是列表,同样是只对一个元素进行的操作,为啥输出时字符串是作为一个整体输出,而列表却输出了一个“None”,什么情况?于是多次实验,不管是remove还是extent等等,都输出一个“None”。“None”“None”“None”你就只会一个“None”吗?竟然给我一个空?一万个“WTF”油然而生。
难受,欲求其果,遂翻遍整个百度,扑天盖地都是关于string和list的使用,结果然并卵。思定,是我见识太短浅?不对,一定是我思考的方式不对,那比较看看吧,目前我掌握的信息有:
- 字符串是不可变类型,而列表是可变类型;
- 对字符串进行相关的操作时,都会在内存中新建一个新的字符串做结果;
- 对列表进行操作时,都是直接是在列表本身进行的;
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。
实施正如所想,之所以对字符串进行操作后,哪怕仅仅只是对一个元素进行了修改,都是会得到一个新建的字符串,我称其为影分身,所以输出时,它可以代替实体显示在我们面前;而列表不一样,所有的操作都是在列表本体直接进行,它没有影分身任我们宰割,所以输出其操作流程时,我们只能得到一个空响。
真相大白,水落石出,一身轻松!
<<<<<<<<表达如有不妥之处,还请各路大神指正!
python学习之那些由print引起的困惑的更多相关文章
- Python学习-第一天-函数和模块的使用
目录 Python学习-第一天总结 print输出的一种简单格式 函数参数之可变参数 模块管理函数 if else语句的单行实现(简洁) 变量作用域 函数书写格式 Python学习-第一天总结 pri ...
- 第一次接触python:学习最简单的print及变量
# -*- coding:utf-8 -*- print "hello world" print("hello world") 这里面使用了2中print方式, ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习笔记—Python基础1 介绍、发展史、安装、基本语法
第一周学习笔记: 一.Python介绍 1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
随机推荐
- java字符串函数用法汇总
替换字符串中的字符 例如有如下x的字符串 String x = "[kllkklk\kk\kllkk]"; 要将里面的"kk"替换为++,可以使用两种方法得到相 ...
- 网红题之一题多变$\;\;\text{e}^x\geqslant x^2+(\text{e}-2)x+1(x>0)$
母题 证明$:\;\;\text{e}^x\geqslant x^2+(\text{e}-2)x+1\;\;(x>0)$ 注$:\;$用不同的结构变形来证明 变式1: 若$\forall x\i ...
- c3p0连接池:com.mysql.cj.exceptions.InvalidConnectionAttributeException
1 遇到的错误com.mysql.cj.exceptions.InvalidConnectionAttributeException: 四月 17, 2019 10:21:13 上午 com.mcha ...
- jquery attribute$=value选择器 语法
jquery attribute$=value选择器 语法 作用:[attribute$=value] 选择器选取每个带有指定属性且以指定字符串结尾的元素. 语法:$("[attribute ...
- ZooKeeper 简介说明
1.什么是Zookeeper? Zookeeper是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等.我们可以使用Zookeeper来实现比如达成共识/集群管理 ...
- Spark译文(一)
Spark Overview(Spark概述) ·Apache Spark是一种快速通用的集群计算系统. ·它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎. ...
- APUE学习之进程控制 - fork 与 vfork
最后编辑: 2019-11-6 版本: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 一.进程标识 每一个进程都有一个唯一的非 ...
- 使用 vuetron 调试 mpvue 项目
简介 由于小程序开发工具的封闭,我们无法通过安装 chrome 插件来方便地使用 vue-devtools 调试我们的 mpvue 项目.vuetron 是一个 vue.js 的项目调试工具, 同时支 ...
- 在浏览器访问Tomcat的时候报错java.lang.IllegalArgumentException: Control character in cookie value or attribute.
出现这种情况的原因就是因为cookie中存在中文或者特殊符号造成的,应为Tomcat7不支持 解决方法: 1,首先必须先删除本地的cookie,否则项目无法访问 2,然后调整编码就行了
- 高效的js原生代码
1.遍历元素 //不推荐 var element = document.getElementsByTagName('div'); for(var i=0; i<element.length; i ...