有一些关于python为变量赋值的方式,我并不完全理解。为什么会这样:
x = [
"accessible",
"air conditioning",
"dishwasher",
"garage",
];
$('div.whitelist-searchable-amenity input[type=checkbox]').each(function(){
if(x.indexOf(this.value) > -1)
{
alert("copy here");
}
});
给了我这个:
charlie = ['d', 'o', 'p', 'e']
beth = charlie
beth[0] = charlie[1]
print charlie
据我所知,赋值运算符只能以一种方式工作,因此这段代码应该只改变beth的第一个索引,而不是charlie。那是什么给出了什么?
答案 0 :(得分:1)
当您说beth = charlie
时,beth
现在是charlie
的别名。这意味着beth
现在发生的任何事情都发生在charlie
。
http://gestaltrevision.be/wiki/python/aliases
为了避免这种情况发生,您可以尝试beth = list(charlie)
或beth = charlie[:]
。
答案 1 :(得分:0)
您刚刚为两个变量分配了相同的列表,因此charlie
和beth
是同一个对象。