|
主题: 有关列表的sort命令
|
 DoDoDo
职务:普通成员
等级:1
金币:2.0
发贴:174
注册:2002/12/19 16:53:49
|
#12004/3/18 15:19:47
a=[3,1,0,5] b=a sort b put a
结果 竟然是[0,1,3,5]。我只是对b进行排序,不想对a排序呀。怎样不对a排序呢?
|
 DoDoDo
职务:普通成员
等级:1
金币:2.0
发贴:174
注册:2002/12/19 16:53:49
|
#22004/3/18 15:46:13
弄的人头痛,来招毒的: a=[3,1,0,5] c=string(a) b=value(c) sort b put a 这下可不变了: [3,1,0,5]
|
 愁眉不展
职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2000/12/21 16:27:18
|
#32004/3/18 16:50:49
使用duplicate复制list,引用同一个list,自然都变了
|
 我是小马
职务:普通成员
等级:3
金币:17.0
发贴:794
注册:2000/11/13 14:56:59
|
#42004/3/20 2:05:10
这样不会出问题了: a=[3,1,0,5] repeat with i = 1 to 4 b[i] = a[i] end repeat sort b put a
|
 DoDoDo
职务:普通成员
等级:1
金币:2.0
发贴:174
注册:2002/12/19 16:53:49
|
#52004/3/22 8:32:20
我查到资料了,原来, a=[3,1,0,5] b=a b保存的只是一个指针结构,所以改变b也就改变了a。如果要b另辟一个内存块来保存[3,1,0,5],只需要b=duplicate(a)就可以了。 当然,用c=string(a) b=value(c)或者是用循环来赋值也都是可以解决问题的。
|