聊聊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中引用与复制用法实例分析
Jun 04 Python
virtualenv实现多个版本Python共存
Aug 21 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 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
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
HTML上传控件取消选择
2013/03/06 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
Vue实现圆环进度条的示例
2021/02/06 Vue.js
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
Python中表示字符串的三种方法
2017/09/06 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
浅谈python标准库--functools.partial
2019/03/13 Python
分析经典Python开发工程师面试题
2019/04/08 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
opencv 阈值分割的具体使用
2020/07/08 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
自荐信模板大全
2015/03/27 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
催款函怎么写
2015/06/24 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers