主页 > 知识库 > 聊聊Python中关于a=[[]]*3的反思

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

热门标签:佛山400电话办理 地图标注面积 市场上的电销机器人 小苏云呼电话机器人 所得系统电梯怎样主板设置外呼 北京电销外呼系统加盟 朝阳手机外呼系统 北瀚ai电销机器人官网手机版 儋州电话机器人

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,

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

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

您可能感兴趣的文章:
  • 关于Python的一些学习总结
  • python3编码问题汇总
  • 解决Python3中的中文字符编码的问题
  • python [:3] 实现提取数组中的数

标签:酒泉 龙岩 宁夏 江苏 金融催收 云南 定西 商丘

巨人网络通讯声明:本文标题《聊聊Python中关于a=[[]]*3的反思》,本文关键词  聊聊,Python,中,关于,的,反思,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《聊聊Python中关于a=[[]]*3的反思》相关的同类信息!
  • 本页收集关于聊聊Python中关于a=[[]]*3的反思的相关信息资讯供网民参考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推荐文章