Python tips(
(此文是在实际工程中遇到的一些小问题,给予解决和整理。解决方法大多来自网上零散的文章。有一个系统化的Python问题解决方案,来自《Python 3 学习笔记》雨痕著,其中对Python的工作细节进行了一些整理,很有参考价值。)
1——如下代码,
a=[1,2,3] b=a
b也是[1,2,3]了,接着
a[0]=4 a[1]=5 a[2]=6
此时a变成[4,5,6]了,再看b,a变了之后没有对b进行新的引用,但b还是变了,自动的也变成[4,5,6]了。
除非对a进行新的赋值,比如
>>>a=[7,8,9] >>>a >>>[7,8,9] >>>b >>>[4,5,6]
这是因为列表被定义为是可变类型,相对的是不可变类型。如Python文档所示:
12
3
可以看到,不可变类型只有:数字,字符串,元组。其它的类型都是可以在名字不变的情况下,对其内容进行修改,并且会影响到其他引用它的变量。
再比如:
>>>a=[1] >>>c=[] >>>c.append(a) >>>c [[1]] >>>a.append(2) >>>c [[1,2]]
1.1——父作用域属性不会影响到子作用域。
>>> a = 0 >>> a = [1] >>> c = (a) >>> type(c) list >>> c = (a, 1) >>> type(c) tuple >>> a.append(2) >>> c ([1, 2], 1)
即元组不可变,但其内部的可变类型,如列表,可以随时改变
2——当你需要引用一个数组的其中一部分,而此数组的长度是不确定的,导致你有可能引用的范围超过了它的长度,可以在引用范围中加上一个冒号:
a_list = [] #此两行代码是正确的,不会报错 b_list = a_list[-1:] #比如-1后面的冒号
此时如果使用b_list=a_list[-1],程序会报错,“IndexError: list index out of range”;再比如
a_list 的长度随着程序的运行会变化,有可能是长3,也有可能变成5个元素,但必须保证b_list不能包含a_list的后面四个元素,
此时可以使用
b_list = a_list[:-4]
这样,即使a_list==[1,2,3],b_list也能成功引用,结果是b_list==[] 。
3——参数前加上单星号或双星号
4——改变对象值的方法是没有返回值的。比如
>>list_2 = list_1.reverse() >>print(type(list_2)) >>NoneType
>> >>list_2 = list_1.remove(n) >>print(type(list_2)) >>NoneType >>
5——
转载于:https://www.cnblogs.com/oler/p/9528933.html
Python tips(相关推荐
- python tips(持续更新)
1. 引用上一层目录 import sys sys.path.append('..') import xx 2. python json JSON是一种轻量级的数据交换格式.可以解决数据库中文存储问题 ...
- 关于深度学习批量处理的一些小Tips(python)
关于深度学习批量处理的一些小Tips(python) 成为时间管理大师,我休息了但是机器不能休息! 批量运行程序 使用 shell 进行 python 运行 1. Linux 上: 2.windows ...
- 《python数据分析(第2版)-阿曼多.凡丹戈》读书笔记第1章-jupyter及常见库
python学习笔记-目录索引 <python数据分析(第2版)-阿曼多.凡丹戈>. 该书是一本介绍如何用Python进行数据分析的学习指南.全书共12章,从Python程序库入门.Num ...
- [Python Tips]去除 Trivial 赋值语句
[Python Tips]去除 Trivial 赋值语句 写 python 这么久,其实有许多小技巧记在了脑子里,当然,其中也烂掉了不少.今天正好有同事问关于怎么去除 trivial 赋值语句问题,觉 ...
- 《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 3 章 答案
<Python程序设计(第3版)>[美] 约翰·策勒(John Zelle) 第 3 章 答案 答案仅供参考,若有错误欢迎指正 判断对错 1.由计算机存储和操作的信息称为数据. 2.由于浮 ...
- Python+selenium(一)
1.selenium介绍 主要由webdriver.IDE.grid 2.selenium环境配置 (1)准备Python环境 (2)准备selenium环境 (3)下载浏览器对应driver版本 C ...
- Python多线程(3)——Queue模块
Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...
- python列表(数组)
python列表(数组) 列表(list) 就是 数组 - 列表是Python中的一个对象 - 对象(object)就是内存中专门用来存储数据的一块区域 - 之前我们学习的对象,像数值,它只能保存一 ...
- Python偏相关(Partial Correlation)或者部分相关性系数计算实战:偏相关性(Partial Correlation)计算及结果解读
Python偏相关(Partial Correlation)或者部分相关性系数计算实战:偏相关性(Partial Correlation)计算及结果解读 目录
最新文章
- 企业必备:商业智能中应该具备的3种仪表盘(Dashboards)
- 客户端升级为select模型
- python购物车程序-Python编写购物车程序
- MyEclipse 2017汉化版安装教程
- 在mac中导入hadoop2.6.0源代码至eclipse
- vscode插件开发实践与demo源码
- 时间戳转中国人能看得懂的日期格式 yy-mm-dd
- 机器学习很难上手和提升?你只差一条学习路径!
- [19/04/29-星期一] GOF23_行为型模式(责任链模式、迭代器模式)
- Spring的9种设计模式(二)
- app一键签名工具 --- Android Sign Kit v1.0免费版
- java后端尝试使用WebOffice在线编辑
- android led 字体下载,Android LED数字/电子表字体digital font
- 频响测试软件的使用教程,频谱分析仪的使用方法与技巧
- echarts做了一个气泡图
- 余三码的意义和加法运算
- 思科交换机如何配置Trunk?
- 【小程序开发之文章详情页面的设计】文章详情页面如何布局
- base64编码上传图片java后台接收实例
- 爬虫练习:爬取网页数据
热门文章
- 用了虚拟机Linux不能上网,虚拟机Linux不能上网怎么办
- python学习笔记(九)——文件和异常(重点)
- python连通域标记_pythonamp;#8212;二值图像连通域标记 - 易采站长站
- element-ui table点击某行,修改背景颜色(即高亮)
- 基于matlab水轮机期刊,基于MATLAB/SIMULINK的水轮机调节系统寻优
- android 让item满屏,Android的全屏活动?
- Java第三大的数,Java通过排序找出数组第三大数字
- java impala_impala 概述
- 第十天2017/04/21(2、泛型编程:模板 / 全特化、偏特化)
- MFC 不存在从 CString 到 char * 的适当转换函数