python中的增量赋值

一,在python中a=a+b和a+=b有区别吗

**1,对可变的数据类型

a=[1,2,3]

print(id(a)) #1602469350792

b=[4,5]

a=a+b

print(a,id(a)) #[1, 2, 3, 4, 5] 1602469421512

a=[1,2,3]

print(id(a)) #1736417136008

b=[4,5]

a += b

print(a,id(a)) #[1, 2, 3, 4, 5] 1736417136008

对可变数据类型,a= a+b 和 a+=b 他们得到的新的列表的元素是一致的,但是他们的内存地址,增量赋值的和原列表a的一致,普通赋值的不一致。

---------------------

2,对不可变数据类型

a=(1,2,3)

print(id(a)) #2352934763832

b=(3,4)

a=a+b

print(a,id(a)) #(1, 2, 3, 3, 4) 2352934103616

a=(1,2,3)

print(id(a)) #2128999628088

b=(3,4)

a+=b

print(a,id(a)) #(1, 2, 3, 3, 4) 2128998967872

对不可变数据类型,a= a+b 和 a+=b 他们得到的新的列表的元素是一致的,他们的内存地址也都和原列表不一致。

---------------------

二,出现这样的现象的原因

+=调用的是iadd方法,此方法是就地加法。

当类的内部有iadd方法的时候,遇到+=会优先调用此方法,没有的时候,会退而求其次,调用add方法。

对列表而言,a +=b就相当于a.extend(b)。

print("__iadd__" in dir(list)) #True

print("__add__" in dir(list)) #True

print("__iadd__" in dir(tuple)) #False

print("__add__" in dir(tuple)) #True

---------------------

python增量赋值是什么_python学习记录20190122_增量赋值相关推荐

  1. python小括号报错_Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  2. python做实时温度曲线图_Python学习记录 - matplotlib绘制温度变化折线图

    Python学习记录 - matplotlib绘制温度变化折线图 Python学习记录 - matplotlib绘制温度变化折线图 题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折 ...

  3. 【Python】 Python编程基础练习100题学习记录第七期(61~70)

    1.此为GitHub项目的学习记录,记录着我的思考,代码基本都有注释. 2.可以作为Python初学者巩固基础的绝佳练习,原题有些不妥的地方我也做了一些修正. 3.建议大家进行Python编程时使用英 ...

  4. python3.10官方文档学习记录四__赋值、比较运算

    1 先来个例子: Python 还可以完成比二加二更复杂的任务. 例如,可以编写 斐波那契数列 的初始子序列,如下所示: >>> # 斐波那契级数: ... # 两个元素的和定义了下 ...

  5. 【Python】 Python编程基础练习100题学习记录第二期(11~20)

    1.此为GitHub项目的学习记录,记录着我的思考,代码基本都有注释. 2.可以作为Python初学者巩固基础的绝佳练习,原题有些不妥的地方我也做了一些修正. 3.建议大家进行Python编程时使用英 ...

  6. python游戏编程网课_Python 学习最佳方式_创建游戏_编程一个机器人

    Python 是世界上功能最多且最强大的编程语言之一.使用 Python,你可以编写自己的应用程序,创建游戏.设计算法.甚至编程一个机器人.学习 Python 还可以担任软件工程师.Web 开发人员. ...

  7. 用python画糖葫芦_python学习记录六

    返回函数 def calc_sum(*args): ax=0for n inargs: ax= ax +nreturn ax def lazy_sum(*args): def sum(): ax = ...

  8. python糖葫芦_python学习记录二

    list python内置的一种数据类型是列表:list  是一种有序的集合 比如  classmates = ['a','b','c',] classmates[-1] = 'c'//倒数第一个这样 ...

  9. python socket编程_Python学习记录-socket编程

    1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...

最新文章

  1. 自动驾驶中实时车道检测和警报
  2. 计算机汇编语言运用哪个进制,运用汇编语言怎样以2进制、8进制、10进制、16进制方式输出10进制的数的计算结果。...
  3. golang dlv 远程调试
  4. 傻瓜神经网络入门指南
  5. 线性代数及其matlab应用课后题答案,线性代数课后习题答案全)习题详解.docx
  6. 给英文文章加音标,建生词表
  7. WPS Excel将多个Excel文件合并到一个Excel文件中(sheet)
  8. TrustedInstaller
  9. 大数据定义、思维方式及架构模式
  10. 二分法求多项式单根 — c语言
  11. 怎样用zbrush变化目标(Morph Target)子调控板
  12. 游戏中接入第三方渠道时 关于meta-data的一些小问题
  13. GitHub上Stars最多的10个Python项目
  14. canvas实现手写签名
  15. 添加槽函数出现no documents matching “ui_xxx.h“
  16. AutoCAD Civil 3D-装配-条件部件
  17. discuz与ecshop实现整合和积分互通
  18. VCC、VDD和VSS三种标号的区别
  19. 通过css控制HTML文本框中的文字垂直居中
  20. 如何查看小方侦测云存储_如何评价小方1s智能摄像机?

热门文章

  1. LinkExtractor
  2. springboot rabbitmq direct exchange和topic exchange 写法上关于路由键的区别
  3. 深浅拷贝、函数、内置函数、文件处理、三元运算、递归
  4. linux基础(day19)
  5. N个免费DevOps开源工具,没用过,至少应该了解!
  6. 数组、链表、Hash(转)
  7. 初学者应该了解的编程陷阱:javascript篇
  8. 为你的博客添加几分色彩
  9. JS判断浏览器类型的方法【转】
  10. 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”