博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的“=”与C++的区别
阅读量:6913 次
发布时间:2019-06-27

本文共 908 字,大约阅读时间需要 3 分钟。

先来看python中普通变量传值

data1=1data2=data1data2+=1print data2,data12 1

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

data1=[1,2,3,4]data2=data1data2+=[5]print data1[1, 2, 3, 4, 5]print data2[1, 2, 3, 4, 5]
data1=[1,2,3,4]data2=data1data2.append(5)print data1[1, 2, 3, 4, 5]print data2[1, 2, 3, 4, 5]
data1=[1,2,3,4]data2=data1data2=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=data1data1[2]="st2"print data1{2: 'st2', 'ont': 'st1'}print data2{2: 'st2', 'ont': 'st1'}

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

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

转载地址:http://imicl.baihongyu.com/

你可能感兴趣的文章
Grin交易原理详解
查看>>
大数据体系【概念认知】系列-2:存储以及副本策略
查看>>
Apache与Tomcat区别联系
查看>>
用shell编写批量打包日志脚本
查看>>
传统的MapReduce框架慢在那里
查看>>
20个java异常处理最佳实践
查看>>
001作业题
查看>>
关于实习
查看>>
叠加等边三角形
查看>>
网页换肤
查看>>
[BZOJ3751/NOIP2014]解方程
查看>>
silverlight多国语言研究
查看>>
赋值法
查看>>
BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
查看>>
Linq to entity优化---MSDN
查看>>
iOS开发之--一些有用的博文和博客
查看>>
GridView中实现CheckBox的全选
查看>>
home.pl 正在促销,一些域名免费(终止于2017.4.4)
查看>>
Loadrunner监控Centos
查看>>
Python--day25--面向对象之多态
查看>>