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

 更新时间:2021年06月02日 09:57:22   作者:zhongnanshu  
这篇文章主要介绍了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
...
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,

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Django ORM 多表查询示例代码

    Django ORM 多表查询示例代码

    这篇文章主要介绍了Django ORM 多表查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 深入理解 Python 中的多线程 新手必看

    深入理解 Python 中的多线程 新手必看

    你应当将下边的例子运行多次,以便可以注意到线程是不可预测的和线程每次运行出的不同结果。声明:从这里开始忘掉你听到过的关于GIL的东西,因为GIL不会影响到我想要展示的东西
    2016-11-11
  • python实现猜数字游戏

    python实现猜数字游戏

    这篇文章主要为大家详细介绍了python实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 利用Python实现生成颜色表(color chart)

    利用Python实现生成颜色表(color chart)

    在做色彩相关的算法分析时候,经常需要使用规则的颜色表来进行辅助,本文就来利用numpy和opencv生成颜色表并保存为图片,需要的可以参考一下
    2023-05-05
  • Django项目中动态设置静态文件路径的全过程

    Django项目中动态设置静态文件路径的全过程

    这篇文章主要给大家介绍了关于Django项目中动态设置静态文件路径的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Python的异常问题(Python Exception)

    Python的异常问题(Python Exception)

    这篇文章主要介绍了Python的异常问题(Python Exception),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python的Flask框架中web表单的教程

    Python的Flask框架中web表单的教程

    这篇文章主要介绍了Python的Flask框架中web表单的教程,表单是学习各个web框架中的基础知识,需要的朋友可以参考下
    2015-04-04
  • 教你实现Ubuntu安装Python

    教你实现Ubuntu安装Python

    这篇文章主要为大家介绍了Ubuntu安装Python的实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 浅谈pytorch卷积核大小的设置对全连接神经元的影响

    浅谈pytorch卷积核大小的设置对全连接神经元的影响

    今天小编就为大家分享一篇浅谈pytorch卷积核大小的设置对全连接神经元的影响,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Django 后端数据传给前端的实现示例

    Django 后端数据传给前端的实现示例

    本文主要介绍了Django 后端数据传给前端的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12

最新评论