1
tuoxie007 2012-04-28 21:21:06 +08:00
可能是一级数组中的指针指向了同一个[],建议检查一下id是否相同
|
2
tuoxie007 2012-04-28 21:23:44 +08:00
如果是这样的话,换成list()试试,我在外面,没有命令行可以试
|
3
quake0day 2012-04-28 22:36:34 +08:00
>>k=[]
>>k.append([]) >>k.append([]) >>k.append([]) >>k [[],[],[]] >>k[0].append(1) >>k [[1],[],[]] Python 2.7.3没问题 |
4
reorx 2012-04-28 22:46:49 +08:00
@tuoxie007 似乎只可能是这种情况,但列表作为可变对象,在创建的时候是不会查找缓存或出现重复的。[] is [] 得到的结果会是False,用不用list()都是一样的。这样说,我也没看出来问题出在哪里。。。
|
5
yuelang85 2012-04-28 22:55:29 +08:00
这个函数没有问题。
检查下各个self.__groups的赋值语句?最好能把他们贴出来,尤其是self._groups的初始化语句。 |
7
yuelang85 2012-04-28 23:01:12 +08:00
@thedevil7 id一模一样说明是同一个对像哇。不过这个也说明不了啥,因为你这种情况除了自定义了append函数以外,基本上就是因为同一个对象。所以能不能把self._groups的初始化语句贴出来?
|
8
binux 2012-04-28 23:02:21 +08:00
你是这么初始化的吧
groups = [[]]*3 |
9
yuelang85 2012-04-28 23:03:23 +08:00
我最怀疑的,就是在初始化语句那里写了这么样的一段:
self._group_amount = 10 self._groups = [[]] * self._group_amount |
13
thedevil7 OP |
14
thedevil7 OP |