master
/ 6.2.5 列表赋值与复制.ipynb

6.2.5 列表赋值与复制.ipynb @master

341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
 
 
 
 
 
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 6.7 列表的赋值和复制"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将一个列表ls直接赋值给另一个变量lsnew时,并不会产生新的对象,只相当于给原列表存储的位置多加了一个标签lsnew,可以同时使用ls和lsnew两个标签访问原列表。当列表ls的值发生变化时,lsnew同时发生变化。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当使用copy()方法复制或用列表切片再赋值时,相当于创建一个新对象,再拷贝数据的一个副本,称为浅复制。新对象与原列表无直接关联,对其中一个操作也不会影响另一个对象。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "140053318249440 140053318249440 140053318249680 140053318248800 140053318250000 140053318250240\n",
      "ls: [2, 5, ['a', [22, 33, 44], 'c'], 9, 10]\n",
      "ls1: [2, 5, ['a', [22, 33, 44], 'c'], 9, 10]\n",
      "ls2: [5, ['a', [22, 33, 44], 'c']]\n",
      "ls3: [2, 5, ['a', [22, 33, 44], 'c'], 9]\n",
      "ls4: [2, 5, ['a', [22, 33, 44], 'c'], 9]\n",
      "ls5: [2, 5, ['a', [22, 33], 'c'], 9]\n"
     ]
    }
   ],
   "source": [
    "# 只拷贝第一层的叫浅拷贝,如元素为可变数据类型,只拷贝其首地址,可变数据类型元素值发生变化,会影响用浅拷贝创建的对象。\n",
    "# 递归拷贝到底的叫深拷贝,拷贝结果完全独立于原对象\n",
    "import copy\n",
    "\n",
    "ls = [2,5,['a',[22,33],'c'],9] # 创建一个对象ls\n",
    "ls1 = ls                       # ls对象加一个新标签,值随ls变化而变化\n",
    "ls2 = ls[1:3]                  # 切片,得到新对象\n",
    "ls3 = ls.copy()                # 产生新对象\n",
    "ls4 = [x for x in ls]          # 列表推导式\n",
    "\n",
    "ls5 = copy.deepcopy(ls)        # 产生新对象,递归拷贝ls中所有元素,对象创建后完全独立于ls\n",
    "ls.append(10)                  # ls 末尾增加一个元素\n",
    "ls[2][1].append(44)            # ls 中序号为2的元素['a',[22,33],'c']中序号为1的元素[22,33]末尾增加一个元素\n",
    "print(id(ls),id(ls1),id(ls2),id(ls3),id(ls4),id(ls5))\n",
    "\n",
    "print(\"ls:\",ls)\n",
    "print(\"ls1:\",ls1)\n",
    "print(\"ls2:\",ls2)\n",
    "print(\"ls3:\",ls3)\n",
    "print(\"ls4:\",ls4)\n",
    "print(\"ls5:\",ls5)\n"
   ]
  },
  {
   "attachments": {
    "fdcf2916-65f0-4aae-9fed-fbbfbc88226b.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:fdcf2916-65f0-4aae-9fed-fbbfbc88226b.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由上例可以看出,ls1和ls的id值相同,表示它们指向同一序列,而ls2、ls3、ls4和ls5的id值各不相同,表明它们指向不同对象。\n",
    "不同的是,ls5在创建时,递归复制了ls里所有元素,称为深复制,这种方法创建的对象完全独立于原始对象,原始对象的任何变化都不会影响到深复制创建的对象。\n",
    "ls2、ls3和ls4只复制一层元素,当其中某可变数据类型元素的值发生变化时,ls2、ls3和ls4中对应元素的值也会发生变化。\n",
    "与字符串一样,当列表乘一个整数n时是一种重复操作,相当于一个id的对象被复制n次。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "ls = [[ ]] * 3   # ls[0]被复制3次\n",
    "print(ls)        # [[], [], []]\n",
    "print(id(ls[0]),id(ls[1]),id(ls[2])) \n",
    "# ls[0],ls[1],ls[2]id相同,是同一对象的不同标签\n",
    "# 输出2438949169160 2438949169160 2438949169160\n",
    "ls[0].append(3)   # 列表ls[0]新增一个元素\n",
    "print(ls)     # [[3], [3], [3]],对象值改变,通过不同标签访问的都是修改过的值\n",
    "ls[0].append(5)   # 列表ls[0]新增一个元素\n",
    "print(ls)\n",
    "# [[3, 5], [3, 5], [3, 5]],对象值改变,通过不同标签访问的都是修改过的值\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src = \"images/ch6/1.png\">\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "严格来说,Python 中赋值语句并不是把对象的值赋给变量名,而是在变量名和对象之间创建绑定关系,或者说给存储在数据起一个名字或加一个标签以方便重复访问。\n",
    "对于自身可变(如列表)或者包含可变项(如列表做为元素)的集合对象,在程序开发时有时会需要生成其副本用于改变操作,避免改变原对象。copy 模块提供了通用的浅层 (shallow) 复制和深层 (deep)复制操作,语法如下:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "copy.copy(x)             # 返回 x 的浅层复制。\n",
    "copy.deepcopy(x[, memo]) # 返回 x 的深层复制。\n",
    "exception copy.error     # 针对模块特定错误引发。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "浅层复制和深层复制都会创新一个新的对象,他们之间的区别仅与复合对象 (即包含其他对象的对象,如列表或类的实例) 相关:\n",
    "● 一个 浅层复制 会构造一个新的复合对象,然后(在可能的范围内)将原对象中找到的 引用 插入其中。\n",
    "● 一个 深层复制 会构造一个新的复合对象,然后递归地将原始对象中所找到的对象的 副本 插入。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import copy\n",
    "ls = [1,2,'123',[4,5,(7,8,[9,10])]]\n",
    "ls2 = copy.copy(ls)  \n",
    "ls3 = copy.deepcopy(ls) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src = \"images/ch6/2.png\">\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "深度复制操作通常存在两个问题, 而浅层复制操作并不存在这些问题:\n",
    "● 递归对象 (直接或间接包含对自身引用的复合对象) 可能会导致递归循环。\n",
    "● 由于深层复制会复制所有内容,因此可能会过多复制(例如本应该在副本之间共享的数据)。\n",
    "deepcopy() 函数通过以下操作避免这些问题:\n",
    "● 保留在当前复制过程中已复制的对象的 \"备忘录\" (memo) 字典;\n",
    "● 允许用户定义的类重载复制操作或复制的组件集合。\n",
    "该模块不复制模块、方法、栈追踪(stack trace)、栈帧(stack frame)、文件、套接字、窗口、数组以及任何类似的类型。它通过不改变地返回原始对象来(浅层或深层地)“复制”函数和类;这与 pickle 模块处理这类问题的方式是相似的。\n",
    "制作字典的浅层复制可以使用 dict.copy() 方法,而制作列表的浅层复制可以通过赋值整个列表的切片完成,例如:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "copied_list = original_list[:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "类可以使用与控制序列化(pickling)操作相同的接口来控制复制操作,关于这些方法的描述信息可参考 pickle模块。实际上,copy 模块使用的正是从 copyreg 模块中注册的 pickle 函数。\n",
    "想要给一个类定义它自己的拷贝操作实现,可以通过定义特殊方法 __copy__() 和 __deepcopy__()。 调用前者以实现浅层拷贝操作,该方法不用传入额外参数。 调用后者以实现深层拷贝操作;它应传入一个参数即 memo字典。 如果 __deepcopy__() 实现需要创建一个组件的深层拷贝,它应当调用 deepcopy() 函数并以该组件作为第一个参数,而将 memo 字典作为第二个参数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 以下两种方法都可以获得包含以3个空列表为元素的列表\n",
    "lists = [[]] * 3\n",
    "print(lists)  # [[], [], []]\n",
    "\n",
    "ls = [[] for i in range(3)]\n",
    "print(ls)    # [[], [], []]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从图中可以看到,lists的三个元素引用自同一个对象,是重复引用。而ls中的3个元素是分3次创建的3个空列表,是3个独立的对象。两个列表虽然看似相同,但包含的对象数量是不同的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "<img src = \"images/ch6/3.png\">\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 以下两种方法都可以获得包含以3个空列表为元素的列表\n",
    "lists = [[]] * 3\n",
    "lists[0].append(3)\n",
    "print(lists)  # [[3], [3], [3]]\n",
    "# 上述代码中3个元素中由lists[0]重复得到,都引用自lists[0],是同一个对象。\n",
    "# 当这个对象的改变时,引用这个对象的所有名字的值也会发生相应的变化\n",
    "\n",
    "ls = [[] for i in range(3)]\n",
    "ls[0].append(3)\n",
    "ls[1].append(5)\n",
    "ls[2].append(7)\n",
    "print(ls)   # [[3], [5], [7]]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "lists中的三个空列表是同一个对象的3次引用,所以改变其中一个值的时候,3个元素的值同时发生了变化。而ls中的三个空列表是3个独立的对象,改变列表的值的时候,相互之间无影响。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 以下两种方法都可以获得包含以3个空列表为元素的列表\n",
    "lists = [[]] * 3\n",
    "lists[0].append(3)\n",
    "lists[1].append(6)\n",
    "lists[2].append(9)\n",
    "print(lists)  # [[3, 6, 9], [3, 6, 9], [3, 6, 9]]\n",
    "# 上述代码中3个元素中由lists[0]重复得到,都引用自lists[0],是同一个对象。\n",
    "# 当这个对象的改变时,引用这个对象的所有名字的值也会发生相应的变化\n",
    "\n",
    "ls = [[] for i in range(3)]\n",
    "ls[0].append(3)\n",
    "ls[1].append(5)\n",
    "ls[2].append(7)\n",
    "print(ls)   # [[3], [5], [7]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "<img src = \"images/ch6/4.png\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "140376180026256 140376180026256\n",
      "ls: [2, 5, ['a', [22, 33], 'c'], 9, 10]\n",
      "ls1: [2, 5, ['a', [22, 33], 'c'], 9, 10]\n"
     ]
    }
   ],
   "source": [
    "# 只拷贝第一层的叫浅拷贝,如元素为可变数据类型,只拷贝其首地址,可变数据类型元素值发生变化,会影响用浅拷贝创建的对象。\n",
    "# 递归拷贝到底的叫深拷贝,拷贝结果完全独立于原对象\n",
    "import copy\n",
    "\n",
    "ls = [2,5,['a',[22,33],'c'],9] # 创建一个对象ls\n",
    "ls1 = ls                       # ls对象加一个新标签,值随ls变化而变化\n",
    "\n",
    "ls.append(10)                  # ls 末尾增加一个元素\n",
    "\n",
    "print(id(ls),id(ls1))\n",
    "print(\"ls:\",ls)\n",
    "print(\"ls1:\",ls1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}