聊聊Python中关于a=[[]]*3的反思


Posted in Python onJune 02, 2021

Python 关于a=[[]]*3的反思

之前用python做了一个关于交通大数据的项目,由于之前比较赶进度,故现在会陆续更新对项目代码的一些反思。

1、

聊聊Python中关于a=[[]]*3的反思聊聊Python中关于a=[[]]*3的反思

由此可以看出,a[0],a[1],a[2]指向的是同一个元素,[[]]*3表示在a中开辟三份地址,且地址相同。

2、

聊聊Python中关于a=[[]]*3的反思聊聊Python中关于a=[[]]*3的反思

重新对a[0]赋值,故a[0]地址改变

3、

聊聊Python中关于a=[[]]*3的反思聊聊Python中关于a=[[]]*3的反思

对a[0][0]赋值,即改变a[0],a[1],a[2]指向的地址里的内容

注: .append\+=\-=等都不会重新赋地址,=会重新赋地址 故而,下面两条语句都会出现问题:

聊聊Python中关于a=[[]]*3的反思

在上述278、280两行的语句中,我都用到了[[]]*len(spts),所以只要其中某一个[]之后有.append或+=或其它不重新指向地址的行为,另外两个元素也会跟着改变。

Python a, b = b, a +b [Python3常见问题]

阅读文档发现的。

>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
...     print(b)
...     a, b = b, a+b
...
1
1
2
3
5
8

他实际上就是:

c = a + b
a = b
b = c

其他应用

1. 交换

a, b = 0, 1
a, b = b, a

评价:省去了temp中间变量

2. 斐波那契

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

评价:比起数组的,递归的,确实简洁

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在漏洞利用Python代码真的很爽
Aug 26 Python
python字符串过滤性能比较5种方法
Jun 22 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
对python调用RPC接口的实例详解
Jan 03 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
python框架django项目部署相关知识详解
Nov 04 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
python 如何在测试中使用 Mock
Mar 01 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
python内置进制转换函数的操作
Jun 02 #Python
Python 内置函数速查表一览
Jun 02 #Python
利用Python判断你的密码难度等级
Jun 02 #Python
Python标准库之typing的用法(类型标注)
只用50行Python代码爬取网络美女高清图片
这样写python注释让代码更加的优雅
Jun 02 #Python
上帝为你开了一扇窗之Tkinter常用函数详解
You might like
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
php&amp;mysql 日期操作小记
2012/02/27 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python创建xml的方法
2015/03/10 Python
python中异常捕获方法详解
2017/03/03 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
工程班组长岗位职责
2013/12/30 职场文书
物业招聘计划书
2014/01/10 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
工程款催款函
2015/06/24 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
git stash(储藏)的用法总结
2022/06/25 Servers