首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

list是可变容器,为什么这样不能修改它的值?该怎么解决

2012-03-15 
list是可变容器,为什么这样不能修改它的值??list[ jessinio , jason ]forxinlist:xnon print(list

list是可变容器,为什么这样不能修改它的值??
list=[ "jessinio ", "jason "]

for   x   in   list:
      x   =   "non "


print(list)还是:
[ 'jessinio ',   'jason ']


不解!!!!!!


[解决办法]
for x in list:
> > > x = "non "

每次循环的时候,开始x只是和list里面的一个位置指向了相同的东西,稍后x又指向了 "non "。而list中原来的位置依旧指向原来的对象,list一直作为右值使用而已。

在C里面可以这样理解:

const char* list[] = { "jessinio ", "jason "};
const char* x;
int i;
for(int i=0; i <2; i++)
{
x = list[i];
x = "non ";
}

没有任何操作修改了list(list没有作为左值使用);


你想修改list的话可以使用索引:
w = [ "int ", "str "]

for i in range(len(w)):
w[i] = "none "

print w

热点排行