900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Python中的对象赋值和浅拷贝 深拷贝

Python中的对象赋值和浅拷贝 深拷贝

时间:2023-03-29 05:23:50

相关推荐

Python中的对象赋值和浅拷贝 深拷贝

在看一篇资料的时候.有两处代码.

for data in [data_train, data_test_a]:data['grade'] = data['grade'].map({'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7})

这个代码可以查看data_train,可查看到数据修改.

但下面的代码

for data in [data_train, data_test_a]:data = pd.get_dummies(data, columns=['subGrade', 'homeOwnership', 'verificationStatus', 'purpose', 'regionCode'])

查看data_train却无法查看到数据修改.

原因

利用id()查看内存,可以发现

第一个代码:经过map修改后,data[‘grade’]指向了新的内存地址,但是仍然可以通过data_train[‘grade’]找到该内存地址.

第二个代码:经过get_dummie后,data 指向了新的内存地址,但data_train仍指向原来的内存地址,所以无法找到data指向的新的内存地址,所以修改无效.

参考资料:

Python 深拷贝和浅拷贝详解

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。