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