这篇教程聊聊Python中关于a=[[]]*3的反思写得很实用,希望能帮到您。 Python 关于a=[[]]*3的反思之前用python做了一个关于交通大数据的项目,由于之前比较赶进度,故现在会陆续更新对项目代码的一些反思。 1、 
由此可以看出,a[0],a[1],a[2]指向的是同一个元素,[[]]*3表示在a中开辟三份地址,且地址相同。 2、 
重新对a[0]赋值,故a[0]地址改变 3、 
对a[0][0]赋值,即改变a[0],a[1],a[2]指向的地址里的内容 注: .append/+=/-=等都不会重新赋地址,=会重新赋地址 故而,下面两条语句都会出现问题: 
在上述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...112358 他实际上就是: 其他应用1. 交换 评价:省去了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, 评价:比起数组的,递归的,确实简洁 以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。 python内置进制转换函数的操作 python 实现两个变量值进行交换的n种操作 |