首页 > 编程语言 >python 中深浅拷贝

python 中深浅拷贝

时间:2024-07-17 17:59:04浏览次数:12  
标签:obj python 深浅 l3 l0 print 拷贝 copy append

# 等号赋值
# l0 = [1, 3, 5]
# l2 = [1, 3, 5]
# l0.append(7)
# print(l0, l2)
# print(l0 == l2, l0 is l2, id(l0), id(l2))


#  等号赋值: 直接赋予内存地址  两个变量最终还是同一个内存地址
# 修改一个另一个同步更改
# l0 = [1, 3, 5]
# l2 = l0
# l0.append(7)
# print(l0, l2)
# print(l0 is l2, id(l0), id(l2))


# 浅拷贝  把不可变类型的值拷贝  把可变类型地址拷贝
# l3 = [1, 3, 5, ["a", "b"]]
# l4 = l3.copy()
# l3.append(7)
# print(l3, l4, l3 is l4, id(l3), id(l4))
# l3[3].append("c")
# print(l3, l4, l3[3] is l4[3], id(l3[3]), id(l4[3]))

# import copy

# l3 = [1, 3, 5, ["a", "b"]]
# l4 = copy.copy(l3)
# print(l3 is l4)
# print(l3[3] is l4[3])

#
# l5 = [1, 3, 5, ["a", "b"]]
# l6 = copy.deepcopy(l5)
# print(l5 is l6, l5[3] is l6[3])
# l5.append(7)
# print(l5, l6)
# l5[3].append("c")
# print(l5, l6)


obj = {
    "name": "马云",
    "age": 18,
    "address": ["杭州", "北京", ["北京南", "北京西"]],
    "hobby": {
        "1": "足球",
        "2": "钓鱼"
    }
}

import copy
obj4 = copy.copy(obj)
obj["address"][0] = "郑州"
obj["address"][2].append("北京北")
print(obj4)






# 等号 赋值 完全拷贝引用  相当于同一个
# obj2 = obj
# obj["age"] = 20
# obj["address"].append("上海")
# obj["hobby"]["3"] = "骑车"
# print(obj2)

# 浅拷贝: 半独立  不可变类型拷贝值 可变类型拷贝地址
# import copy
# # obj3 = obj.copy()
# obj3 = copy.copy(obj)
# print(obj is obj3)
# obj["age"] = 20
# obj["address"].append("上海")
# obj["hobby"]["3"] = "骑行"
# print(obj3)


# 深拷贝
# import copy
# obj4 = copy.deepcopy(obj)
# print(obj4 is obj, obj4["address"] is obj["address"], obj4["hobby"] is obj["hobby"])
# obj["age"] = 20
# obj["address"].append("上海")
# obj["hobby"]["3"] = "骑车"
# print(obj4)






标签:obj,python,深浅,l3,l0,print,拷贝,copy,append
From: https://blog.csdn.net/zhangzhaoyuxunlei/article/details/140444931

相关文章

  • Clarke-Wright节约算法详解与Python代码示例
    Clarke-Wright节约算法详解与Python代码示例一、算法详解Clarke-Wright节约算法(简称C-W算法),也称为节约里程法或节约算法,是由Clarke和Wright于1964年提出的一种启发式算法。该算法主要用于解决车辆路径问题(VehicleRoutingProblem,VRP),特别是在运输车辆数目不确定的情况下......
  • 小一保姆级 Python 文件操作与管理详解
    Python文件操作与管理在Python编程中,文件操作是日常任务中不可或缺的一部分。本文将介绍Python中三个重要的文件相关模块和功能:open函数、json与pickle库、以及os模块的使用。1. open 函数的使用Python中的open函数是用来打开文件的核心函数。它提供了多种......
  • 【Python】从基础到进阶(四):深入了解Python中的控制流
    ......
  • 【Python】CSS与选择器
        ......
  • python gradio 页面控件
    1、textbox的使用importgradioasgrimportrequestsdefmobile(mobilephone):url='https://api.oioweb.cn/api/common/teladress?mobile='+str(mobilephone)headers={}payload={}response=requests.request("GET",url,......
  • 从零开始学Python第一天:基础知识
    前言在这个信息爆炸的时代,编程技能已经成为我们生活和工作中不可或缺的一部分。而Python,作为一门简洁易读、功能强大的编程语言,正逐渐受到越来越多人的青睐。作为初学者,你可能会对编程充满好奇与期待,同时也有一些担忧和困惑。但是请相信,只要你愿意付出努力和时间,Python的......
  • 为什么都提倡学Python?这10大特性你一定要清楚!
    前言在了解Python的特性之前,我们首先要了解Python编程语言是什么。Python编程语言是世界上发展最快的编程语言。这一高级通用编程语言提供了广泛的实际应用,并且是一种非常流行的认证。Python可以让程序员更加高效地工作和集成系统。Python的语法优先考虑了可读性,同......
  • python tkinter 界面设计(1)
    pythonGUI设计tkinter模块tkinter是一个开发源码的图形接口开发工具,目前已经已经一直到python内建的模块。下面从窗体开始慢慢开始整理,图1,查看tkinter版本,8.5以后得版本功能比较健全。图2,创建窗体。 图3-图5,是对窗体的属性设置。  有需要了解更多内容的小伙伴,可......
  • 强化学习——多臂老虎机问题(MAB)【附python代码】
    文章目录一、问题描述1.1问题定义1.2形式化描述1.3累积懊悔1.4估计期望奖励二、解决方法2.1ϵ-贪婪算法2.2上置信界算法2.3汤普森采样算法2.4小结一、问题描述1.1问题定义  有一个用于K根拉杆的老虎机,每一根拉杆都对应一个关于奖励的概率分布R。每......
  • python基础语法
    一、python常用内置对象1、常量与变量常量即字面值无法改变的量,例如一个确定的数字、列表、字符串,如“Helloworld”就是一个典型的字符串常量,变量是指值可以发生改变的量,在python中,不仅变量的值可以任意变化,变量的值也可以随时发生改变。这是因为python变量并不直接存储值,而是......