2004年08月09日 星期一 12:32
谢谢指正! Dirk ----- Original Message ----- From: "Gary Jia" <gary at exoweb.net> To: <python-chinese at lists.python.cn> Sent: Monday, August 09, 2004 12:21 PM Subject: 答复: Re: [python-chinese] 关于相同列表与字符串的id值问题 > 有一点你搞错了 > 那就是('time') 并不是元组它仍然是一个字符窜 > 你可以通过type方法来看。 > 如果你需要一个元组应该是 ('time',) > 所以两个值相等的元组和序列都有不同的地址。 > > -----邮件原件----- > 发件人: python-chinese-bounces at lists.python.cn > [mailto:python-chinese-bounces at lists.python.cn] 代表 hoxide > 发送时间: 2004年8月9日 11:29 > 收件人: python-chinese at lists.python.cn > 主题: Re: Re: [python-chinese] 关于相同列表与字符串的id值问题 > > Dirk Ye,您好! > > 就是这么回事. > > ======== 2004-08-09 10:19:25 您在来信中写道: ======== > > 我的理解: > > 这里的问题不仅仅是引用这么简单,其实这是普遍的编译器(解释器也应该如此) > 针对性能的一种优化,具体分析如下: > 编译器/解释器为了节约系统资源以及提高本身的效率,面对常量值和变量值会区 > 别对待: > > 1、当解释器看到两个相同值的常量变量的时候,他们不会申请新的内存,只是增 > 加第一个变量的地址引用数,所以你看到初始的a和b是相同的地址;但如果你要改变a > 或b的值以后,a和b的引用地址将不再相同,因为解释器会为修改的变量重新申请内存 > 并修改相应的地址引用。 > 2、当解释器遇到的是可变变量的时候,它认为用户会随时改变变量值,所以使用 > 的是不同的地址。 > > 在Python中,字符串和元组是属于常量变量,他们符合第一种情况;而序列属于可 > 变变量,符合第二种情况。 > > 验证如下: > > > >>> a = "time" > >>> b = "time" > >>> id(a) > 16636288 > >>> id(b) > 16636288 > >>> a += "s" > >>> id(a) > 20165312 > >>> id(b) > 16636288 > >>> m = ("time") > >>> n = ("time") > >>> id(m) > 16636288 > >>> id(n) > 16636288 > >>> s = ["time"] > >>> t = ["time"] > >>> id(s) > 20361424 > >>> id(t) > 20515760 > >>> > > > 请指正!!! > > > > > ----- Original Message ----- > From: zhou hunter > To: python-chinese at lists.python.cn > Sent: Sunday, August 08, 2004 7:49 AM > Subject: [python-chinese] 关于相同列表与字符串的id值问题 > > > wish you a good day: > 在整理笔记中有一个问题,举例子如下: > >>> a="time" > >>> b="time" > >>> id(a) > 12616688 > >>> id(b) > 12616688#id值可以看出a,b指向且都指向“time" > >>> a=['time'] > >>> b=['time'] > >>> id(a) > 15300640 > >>> id(b) > 15300680#可以看除a,b 指向了 “【"time"】”但两个time却不同。 > 1,id是对数据的唯一标识符,"time"与"time"是同一数据,而列表的却截然不同 > 2,数据应是储存在内存的,那么“time"与'time'是同一位置,而列表的却不是。 > 我想请问到底为什么一旦列表,即使相同表的实际指向却是不同的,而不列表却相同? > (我正在搜索这些资料,希望可以找到) > > 谢谢 > zhou_hunter > > > > > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > 美女明星应有尽有,搜遍美图、艳图和酷图 > 1G就是1000兆,雅虎电邮自助扩容! > > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > = = = = = = = = = = = = = = = = = = = = = = > 致 > 礼! > > hoxide > hoxide_dirac at yahoo.com.cn > 2004-08-09 > -------------------------------------------------------------------------------- > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese >
Zeuux © 2024
京ICP备05028076号