list = [[]] *5
print(list)
num = 5*5
num
>>> 25
str = 'str' * 5
str
>>> 'strstrstrstrstr'
 list = [[]] * 5    
>>>[[], [], [], [], []]
list[0].append(10)
>>>[[10], [10], [10], [10], [10]]
list[1].append(20)
>>>[[10, 20], [10, 20], [10, 20], [10, 20], [10, 20]]
list.append(30)
>>>
[[10, 20], [10, 20], [10, 20], [10, 20], [10, 20], 30]

  上面第1题和第4题大家都没问题,可能会有人对第2题和第3题提出疑问,明明改的是list里的第一个和第二个元素,为什么所有的子list都变了呢?其实当我们[ [ ] ] * 5的时候,本质上并没有把list复制五遍,这五个元素指向的是同一个内存地址,也就是同一个子list的内存地址。所以当我们对第一个元素append(10)的时候,所有的子list都跟着一起变。

  tips: 如果最后将 list[2] = 40, 那其他的子list会受到影响吗,请读者自行测试吧 ! 如果你测试完之后并不明白,没有关系,可以参考这一篇文章,python--关于赋值与深浅拷贝的认识

最新文章

  1. jquery trigger-bind示例
  2. js输出到控制台
  3. centos中 mysql 5.7安装
  4. Demo12SimpleAdapter
  5. WebLogic11g-半小时让你的domain集群化
  6. 深入理解UITableView
  7. Linux shell中的一个问题 ${}带正则匹配的表达式
  8. Ubuntu配置和修改IP地址
  9. eclipse 标签标题乱码解决方法
  10. c++工程重复编译与重复定义
  11. python_类与对象学习笔记
  12. 详解Vue 开发模式下跨域问题
  13. How to get API key (APPID)
  14. wget命令【转】
  15. 使用let声明变量的理解
  16. Flask-SQLAlchemy 无法创建Sqlite 数据库???
  17. 使用 Maven 来管理项目 & 从 0 开始搭建 Maven 项目
  18. 19 网络编程--Socket 套接字方法
  19. HTML5新协议介绍 WebSocket
  20. java date相关

热门文章

  1. 385cc412a70eb9c6578a82ac58fce14c md5破解
  2. 深入理解 react-router 路由系统
  3. [bzoj 2017] [Usaco2009 Nov]硬币游戏
  4. hdu_1754I Hate It(线段树)
  5. Matrix Chain Multiplication(表达式求值用栈操作)
  6. [国嵌笔记][011][Linux密码破解]
  7. 数据结构课程设计四则运算表达式求值(C语言版)
  8. include指令与include动作的区别(面试要考)
  9. Tp框架查询分页显示与全部查询出来显示运行时间快慢有区别吗?
  10. vueThink权限配置