运行下面这段代码

 # !/usr/bin/env python3
 # -*- coding=utf-8 -*-

 temp_a = [[0]*2]*3
 temp_b = [[0]*2 for i in range(3)]

 print(temp_a)
 print(temp_b)

 print(id(temp_a[0]) == id(temp_a[1]))
 print(id(temp_b[0]) == id(temp_b[1]))

 temp_a[0][0] = 1
 temp_b[0][0] = 1

 print(temp_a)
 print(temp_b)

会得到奇妙的结果

 [[0, 0], [0, 0], [0, 0]]
 [[0, 0], [0, 0], [0, 0]]
 True
 False
 [[1, 0], [1, 0], [1, 0]]
 [[1, 0], [0, 0], [0, 0]]

temp_a和temp_b的形式是一样的,但是其中列表对象的地址有问题。

重点在输出的第5行,反映了程序第13行的修改。对temp_a中某个对象的修改会影响到所有对象,而temp_b不会。

可以看出list对象的乘法操作是浅拷贝,在使用时要特别注意。

Python - 作为浅拷贝的list对象乘法的更多相关文章

  1. 深度解析:python之浅拷贝与深拷贝

    深度解析python之浅拷贝与深拷贝 本文包括知识点: 1.copy与deepcopy 2.可变类型与不可变类型 1.copy与deepcopy 在日常python编码过程中,经常会遇见变量的赋值.这 ...

  2. Python迭代器,可迭代对象,生成器

    迭代器 迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的界面,设计人员无需关心容器物件的内存分配的实现细节. ...

  3. Python中的可迭代对象与迭代器对象

    刚刚学习Python,对“可迭代对象”和"迭代器对象"的个人理解,不知道对不对. 1.几个概念 (1)迭代工具:包括for循环.列表解析.in成员关系测试.....等等在内的,用于 ...

  4. python学习笔记4(对象/引用;多范式; 上下文管理器)

    ### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 21. 动态类型:对象/引用 对象和引用: 对象是储存在内存中的实体,对象名只是指向这一对象的引用(refere ...

  5. python中的类,对象,方法,属性等介绍

    注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  6. Python标准库05 存储对象 (pickle包,cPickle包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢reverland纠错 在之前对Python对象的介绍中 (面向对象的基本概念 ...

  7. Python 读写文件和file对象(转)

    1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt ...

  8. Python基础教程之List对象 转

    Python基础教程之List对象 时间:2014-01-19    来源:服务器之家    投稿:root   1.PyListObject对象typedef struct {    PyObjec ...

  9. Python(2.7.6) 函数对象与闭包

    在 Python 中,一切皆对象.函数也是对象,它可以赋值给其他变量,也可以当作参数传递. lambda 表达式可以创建函数对象,在 Python 中,lambda 表达式的函数体只能有唯一的一条语句 ...

随机推荐

  1. 【JZOJ6411】上网

    description analysis 如果把所有大小关系连成边,小的往大的连,就可以直接上拓扑 暴力连边时间复杂度\(O(n^2)\),然而连边的过程,考虑用线段树优化 线段树上的所有儿子节点向父 ...

  2. MapReduce分区数据倾斜

    什么是数据倾斜? 数据不可避免的出现离群值,并导致数据倾斜,数据倾斜会显著的拖慢MR的执行速度 常见数据倾斜有以下几类 1.数据频率倾斜   某一个区域的数据量要远远大于其他区域 2.数据大小倾斜  ...

  3. Ruby 安装 – Windows

    Ruby 安装 – Windows 下面列出了在 Windows 机器上安装 Ruby 的步骤. 注意:在安装时,您可能有不同的可用版本. - Window 系统下,我们可以使用 RubyInstal ...

  4. Go 算术运算符

    Go 算术运算符 package main import "fmt" func main() { var a int = 21 var b int = 10 var c int c ...

  5. PDO::beginTransaction

    语法 bool PDO::beginTransaction ( void ) 关闭自动提交模式.自动提交模式被关闭的同时,通过 PDO 对象实例对数据库做出的更改直到调用 PDO::commit() ...

  6. 【转载】API权限设计总结

    本文内容转自:http://blog.csdn.net/initphp/article/details/8636669 API权限设计总结: 最近在做API的权限设计这一块,做一次权限设计的总结. 1 ...

  7. vs2013代码高亮显示失效

    问题: 最近使用vs2013写代码的时候经常遇到一种问题,当我们的工程逐渐变大时,突然有一个文件出现以上问题,这并不是设置提示的问题,因为当你打开别的工程时该问题不会出现.这其实是配置缓存的问题,而V ...

  8. Mybatis笔记 – Po映射类型

    一.输入映射类型 parameterType定义输入到sql中的映射类型,可以是  简单类型  .po类对象(可自动生成 或 手动定义). pojo包装对象(用于综合查询,UserCustom用户自定 ...

  9. java之jvm学习笔记六(实践写自己的安全管理器)

    安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用AccessController的checkPerssiom方法,访问控 ...

  10. css3的选择器

    先来做一下准备工作 页面的效果: 看到上面的框框了吗?我们就是通过给这些框框添加背景色的方式,来让大家,了解css3的选择器的效果,下面正式开始: 关联选择器 E1~E2 选择 E1 后面的兄弟 E2 ...