我知道当你对一个字典进行浅拷贝时,实际上是复制了引用。所以如果我这样做:
x={'key':['a','b','c']}
y=x.copy()
所以列表['a','b','c']的引用被复制到y中。每当我更改列表(例如x ['key'] .remove('a')
),字典x和y都将更改。这部分我理解。但是当我考虑以下情况时:
x={'user':'admin','key':['a','b','c']}
y=x.copy()
当我执行
y['user']='guest'
时,x['user'] 不会改变,但是列表仍然共享同一引用。
所以我的问题是:字符串与列表有何不同?这背后的机制是什么?