资讯专栏INFORMATION COLUMN

python的“=”与C++的区别

lewif / 1187人阅读

摘要:先来看中普通变量传值对于普通变量和是一样的,接下来看看的列表由此可以看到传值时,传递的是指针。由于中的元组相当与中的常量数组,不分析元组,接下来看看中的字典变量字典中传递的也是地址,接下来看看一种特殊的字典,即字典中对应的值是个

先来看python中普通变量传值

data1=1
data2=data1
data2+=1
print data2,data1
2 1

对于普通变量python和c是一样的,接下来看看python的列表

data1=[1,2,3,4]
data2=data1
data2+=[5]
print data1
[1, 2, 3, 4, 5]
print data2
[1, 2, 3, 4, 5]
data1=[1,2,3,4]
data2=data1
data2.append(5)
print data1
[1, 2, 3, 4, 5]
print data2
[1, 2, 3, 4, 5]
data1=[1,2,3,4]
data2=data1
data2=data2+[5]
print data1
[1, 2, 3, 4]
print data2
[1, 2, 3, 4, 5]

由此可以看到python list传值时,传递的是指针。但是从上面代码可以看到data2=data2+[5]跟前面运行结果不一样,这是因为data2=data2+[5]在python中应该是分两步运算的,先把右值传递给栈内的一个变量,然后再把这个变量传给data2,所以运算后data1跟data2的指针不在一起。
由于python中的元组相当与C中的常量数组,不分析元组,接下来看看python中的字典变量

data1={}
data1["ont"]="st1"
data2=data1
data1[2]="st2"
print data1
{2: "st2", "ont": "st1"}
print data2
{2: "st2", "ont": "st1"}

字典中传递的也是地址,接下来看看一种特殊的字典,即字典中对应的值是个list

from collections import defaultdict
data1=defaultdict(list)
b=data1["one"]
b.append("1")
b.append("2")
print data1
defaultdict(, {"one": ["1", "2"]})
print b
["1", "2"]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44598.html

相关文章

  • 对比 C++Python,谈谈指针引用

    摘要:本文基于与,讨论了中与指针及引用相关的一些行为。在这些场合中,移动构造函数和移动赋值操作通过右值引用接管被移动对象。而由于对象从构造函数而来,至此我们可知的构造函数将构造匿名对象,且返回此对象的一个指针。 花下猫语:本文是学习群内 樱雨楼 小姐姐的投稿。之前已发布过她的一篇作品《当谈论迭代器时,我谈些什么?》,大受好评。本文依然是对比 C++ 与 Python,来探讨编程语言中极其重要...

    tracy 评论0 收藏0
  • Python 小入坑

    摘要:入坑学习的是一些信息官网官方文档特点简单,易学,开发快速分类解释型语言,面向对象,动态数据类型的高级语言,其开源遵守协议。拥有动态类型系统和垃圾回收功能。其中为低级语言,为中级语言,为高级语言协议属于项目的一个分类,由协会撰写。 python入坑学习的是python3 一些信息 官网 https://www.python.org/官方文档 https://docs.python.org...

    lavnFan 评论0 收藏0
  • 奇技淫巧第二期

    摘要:因为产生的顺序是先比较第一位,再比较第二位,并且没有很好的解决办法。这种语法的限制是,需要保证异常从属与异常。两个异常都将显示。 这个系利的初衷是回顾琐碎知识点,但...

    Rocture 评论0 收藏0

发表评论

0条评论

lewif

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<