请看一下这两题 ,非常基础的,大学生不明白

img


他问的lst值 题里面也没有lst啊 为什么

img


是因为d里面只有food这个键,所以它返回默认值了吗?就算cake在food对应的值里面也不行

肯定写错了呗,print输出啥就是问啥。lst2=lst1,这样两个列表是共享的,修改lst1就是修改lst2
对啊,d里面只有一个food键值,cake是food键值对应的值中的键值,所以get不能得到,no this food是找不到的时候返回的默认值

具体分析如下:
lst1 = [3, 4, 5, 6] # 定义一个列表lst1
lst2 = lst1 # 将lst1赋值给lst2
此时,lst2获得的是lst1的引用,并不是lst1的一个拷贝。也就是说lst2和lst1实际上引用同一个列表。
lst1[2] = 100 # 修改lst1中的元素
print(lst2) # 打印lst2
输出结果为:[3, 4, 100, 6]
可见,lst2的元素也被修改了,这是因为lst2和lst1引用同一个列表,通过lst1修改列表的元素,lst2中引用的列表的元素自然也被修改。
这种行为被称为“浅拷贝”