python调用数据返回字典dict数据的现象2

思考:

话题1连接:https://www.cnblogs.com/zwgbk/p/10248479.html
在打印和添加时候加上内存地址id(),可以查看结果。可以得出结论:
1、在make()函数里,生成数据的两种不同赋值方式。
  1.1第一种情况,是在一个内存地址生成了一个空的字典。随后每次调用数据时候改变这个内存地址的里的数据。
  1.2第二种情况,是在每次调用数据的时候,都生成不同内存地址的字典。
2、添加进list后,并不是把数据直接保存在list里,而是把内存地址和相应的方法保存起来。在需要使用的时候才逐一生成。包括 '内存地址:%d' % id(val)

说明:

第一种情况

键入代码:

 def make():
dict = {
'a': None
}
for a in range(3):
dict['a'] = a
yield dict list = []
for val in make():
print('添加前字典{},内存地址:{}'.format(val,id(val)))
list.append((val,'内存地址:%d' % id(val)))
print('添加前字典{},内存地址:{}'.format(val,id(val))) print(list)

得到结果:

添加前字典{'a': 0},内存地址:110911992
添加前字典{'a': 0},内存地址:110911992
添加前字典{'a': 1},内存地址:110911992
添加前字典{'a': 1},内存地址:110911992
添加前字典{'a': 2},内存地址:110911992
添加前字典{'a': 2},内存地址:110911992
[({'a': 2}, '内存地址:110911992'), ({'a': 2}, '内存地址:110911992'), ({'a': 2}, '内存地址:110911992')]

说明:

第二种情况

键入代码:

 def make():
for a in range(3):
dict = {
'a': a
}
yield dict list = []
for val in make():
print('添加前字典{},内存地址:{}'.format(val,id(val)))
list.append((val,'内存地址:%d' % id(val)))
print('添加前字典{},内存地址:{}'.format(val,id(val))) print(list)

得到结果:

 添加前字典{'a': 0},内存地址:113784728
添加前字典{'a': 0},内存地址:113784728
添加前字典{'a': 1},内存地址:110699936
添加前字典{'a': 1},内存地址:110699936
添加前字典{'a': 2},内存地址:110699144
添加前字典{'a': 2},内存地址:110699144
[({'a': 0}, '内存地址:113784728'), ({'a': 1}, '内存地址:110699936'), ({'a': 2}, '内存地址:110699144')] 

最新文章

  1. php-resque的设计和使用
  2. js参数传递分析
  3. [ACM_动态规划] Alignment (将军排队)
  4. 【译】Java中的对象序列化
  5. btrace拓展工具-java应用性能诊断优化利器
  6. C# 之 后台加载图片Image
  7. Android进阶2之PopupWindow弹窗(有点悬浮窗的感觉)
  8. MVC4过滤器(转)
  9. zoj1025 Wooden Sticks
  10. xml publisher根据条件显示或隐藏列
  11. 洞见世界(1): 拉勾网大数据告诉你, 会计最高月薪达33k!
  12. Factory Method (工厂模式)
  13. Java(五、类和对象中的例题)
  14. 3.python词云图的生成
  15. c/c++ 多线程 等待一次性事件 future概念
  16. 利用PowerShell监控Win-Server性能
  17. python + Jquery,抓取西东网上的Java教程资源网址
  18. ubuntu 增加一个用户 并赋予权限
  19. PAT A1155 Heap Paths (30 分)——完全二叉树,层序遍历,特定dfs遍历
  20. QT 遇到的问题

热门文章

  1. 系统调用fork()在powerpc上的源码分析
  2. Android studio 下的SDK Manager只显示已安装包的情况
  3. 测试系统工程师TSE的职责与培养
  4. Ubuntu-18.04安装Docker
  5. 关于iframe跨域实践
  6. Python sax模块(SAX解析XML)
  7. [20190321]smem的显示缺陷.txt
  8. KMP算法详解-彻底清楚了(转载+部分原创)
  9. Android 闪烁动画
  10. 排序算法之冒泡排序的思想以及Java实现