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

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