2005年07月09日 星期六 18:44
>再举一例! >举例三: >>>> s = [[0, 0, 0], [0, 0, 0]] >>>> s >[[0, 0, 0], [0, 0, 0]] >>>> s[0][2] +=1 >>>> s >[[0, 0, 1], [0, 0, 0]] >原来问题出在*(重复运算)!可能因为重复的是引用,而不是值。 >不知道这算bug,还是正常现象? 对你的程序由于不是原来想达到的结果所以是bug 对python语言由于是语言本身需要达到的结果所以不是bug >在 05-7-9,Person<person.lee at gmail.com> 写道: >> 举例一: >> >>> s=[[0]*3]*2 >> >>> s >> ...[[0, 0, 0], [0, 0, 0]] >> >>> s[0][2] +=1 >> >>> s >> ...[[0, 0, 1], [0, 0, 1]] >> #咦,s[0][2]变成1,s[1][2]怎么也成1了!? >> >> 举例二: >> >>> s = [range(3),range(4,7)] >> >>> s >> ...[[0, 1, 2], [4, 5, 6]] >> >>> s[0][2] +=1 >> >>> s >> ...[[0, 1, 3], [4, 5, 6]] >> #这才正常:s[0][2]为2+1=3,s[1][2]没变! 这个特性是py的引用机制的特点,对很多从其他语言刚转过来的人是不大容易理解 不过几乎每本py书上都有讲到这个问题,好好看看得了 >_______________________________________________ >python-chinese list >python-chinese at lists.python.cn >http://python.cn/mailman/listinfo/python-chinese >
2005年07月11日 星期一 17:56
多谢大家的指教,从这个例子中我对于引用在python中的作用明白很多了,但还是感觉很难理解透。如,举例一中s[0][1]、s[1][1]、s[0][0]、s[1][0]为何没有变成1呢? 我是这样理解: s中存在两个重复的引用(指向同一个位置的指针),一个引用是指向0的,另一个引用是指向[0,0,0]的。 当s[0][2] +=1时,修改了第一个引用的值(指向另一个位置),同时修改了第二个引用指向的对象([0,0,0]该list)的内容(即修改第3个元素,成为[0,0,1])。 期待limodo找到的两文章。 还有这一主题该如何下关键词STFW?还请指教! 如以"python 引用"为关键词,基本没找到有用的信息。
2005年07月11日 星期一 18:00
文章我已经另开主题发出去了。如果没看到可以去我的blog看一下,或去啄木鸟看一下。 在 05-7-11,Person<person.lee at gmail.com> 写道: > 多谢大家的指教,从这个例子中我对于引用在python中的作用明白很多了,但还是感觉很难理解透。如,举例一中s[0][1]、s[1][1]、s[0][0]、s[1][0]为何没有变成1呢? > 我是这样理解: > s中存在两个重复的引用(指向同一个位置的指针),一个引用是指向0的,另一个引用是指向[0,0,0]的。 > 当s[0][2] +=1时,修改了第一个引用的值(指向另一个位置),同时修改了第二个引用指向的对象([0,0,0]该list)的内容(即修改第3个元素,成为[0,0,1])。 > > 期待limodo找到的两文章。 > 还有这一主题该如何下关键词STFW?还请指教! > 如以"python 引用"为关键词,基本没找到有用的信息。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月11日 星期一 18:00
啄木鸟的在这里: http://wiki.woodpecker.org.cn/moin.cgi/MicroProj/2005-07-10 在 05-7-11,limodou<limodou at gmail.com> 写道: > 文章我已经另开主题发出去了。如果没看到可以去我的blog看一下,或去啄木鸟看一下。 > > 在 05-7-11,Person<person.lee at gmail.com> 写道: > > 多谢大家的指教,从这个例子中我对于引用在python中的作用明白很多了,但还是感觉很难理解透。如,举例一中s[0][1]、s[1][1]、s[0][0]、s[1][0]为何没有变成1呢? > > 我是这样理解: > > s中存在两个重复的引用(指向同一个位置的指针),一个引用是指向0的,另一个引用是指向[0,0,0]的。 > > 当s[0][2] +=1时,修改了第一个引用的值(指向另一个位置),同时修改了第二个引用指向的对象([0,0,0]该list)的内容(即修改第3个元素,成为[0,0,1])。 > > > > 期待limodo找到的两文章。 > > 还有这一主题该如何下关键词STFW?还请指教! > > 如以"python 引用"为关键词,基本没找到有用的信息。 > > > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > -- > I like python! > My Donews Blog: http://www.donews.net/limodou > New Google Maillist: http://groups-beta.google.com/group/python-cn > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月12日 星期二 11:18
谢谢!又学到不少东西! 在 05-7-11,limodou<limodou at gmail.com> 写道: > 啄木鸟的在这里: http://wiki.woodpecker.org.cn/moin.cgi/MicroProj/2005-07-10 > > 在 05-7-11,limodou<limodou at gmail.com> 写道: > > 文章我已经另开主题发出去了。如果没看到可以去我的blog看一下,或去啄木鸟看一下。 > > > > 在 05-7-11,Person<person.lee at gmail.com> 写道: > > > 多谢大家的指教,从这个例子中我对于引用在python中的作用明白很多了,但还是感觉很难理解透。如,举例一中s[0][1]、s[1][1]、s[0][0]、s[1][0]为何没有变成1呢? > > > 我是这样理解: > > > s中存在两个重复的引用(指向同一个位置的指针),一个引用是指向0的,另一个引用是指向[0,0,0]的。 > > > 当s[0][2] +=1时,修改了第一个引用的值(指向另一个位置),同时修改了第二个引用指向的对象([0,0,0]该list)的内容(即修改第3个元素,成为[0,0,1])。 > > > > > > 期待limodo找到的两文章。 > > > 还有这一主题该如何下关键词STFW?还请指教! > > > 如以"python 引用"为关键词,基本没找到有用的信息。 > > > > > > _______________________________________________ > > > python-chinese list > > > python-chinese at lists.python.cn > > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > > > > > > -- > > I like python! > > My Donews Blog: http://www.donews.net/limodou > > New Google Maillist: http://groups-beta.google.com/group/python-cn > > > > > -- > I like python! > My Donews Blog: http://www.donews.net/limodou > New Google Maillist: http://groups-beta.google.com/group/python-cn > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > >
Zeuux © 2025
京ICP备05028076号