python list:
b = a是浅拷贝,b = list(a)和b = copy.cpoy(a)是深拷贝。
浅拷贝,a和b指向的是一个地址。当b改变后,a也会改变。
深拷贝,a和b指向的是两个地址,当b改变后,a不受影响。
Java list:
List list1 = Lists.newArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
List list2 = Lists.newArrayList(list1);
list2.remove("2");
System.out.println(list1);// [1, 2, 3]
System.out.println(list2);// [1, 3]
List list3 = list1;
list3.remove("2");
System.out.println(list1);// [1, 3]
System.out.println(list3);// [1, 3]
list2 = Lists.newArrayList(list1)是深拷贝,list3 = list1是浅拷贝。
深拷贝,list2改变后,list1的值不会改变。
浅拷贝,list3改变后,list1的值也会改变。
python dataframe:
深拷贝,pd.DataFrame.copy(user_info, deep=True),原值改变,复制的新值不会改变。
浅拷贝,pd.DataFrame.copy(user_info, deep=False),原值改变,复制的新值也改变。
浅拷贝:user_info_copy2 = user_info
领取专属 10元无门槛券
私享最新 技术干货