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')] 

python调用数据返回字典dict数据的现象2的更多相关文章

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

    python调用数据返回字典dict数据的现象1 思考: 可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同.使用相同的调用方式,而结果却完全不同.可以看到第二种情况才是我 ...

  2. Django查询数据库返回字典dict数据

    个人观点: 个人认为,在Django项目中, 开发团队为了让使用该框架的用户都使用自带的序列化功能,从而让框架中的SQL返回值很不直观,对于直接使用SQL语句的用户很犯难. 解决: from djan ...

  3. [python] 查询mysql返回datetime类型数据的处理

    Python 查询Mysql,如果是datetime类型,在json序列化的时候会出现问题. 在网上查了一下,解决方案基本都是遍历dict数据,如果是datetime则转化为字符串. from dat ...

  4. 使用Python调用Flickr API抓取图片数据

    Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...

  5. python 执行sql得到字典格式数据

    本文在提供一种方式,实现执行sql语句 返回字典结果集 # 连接数据库,数据库的,这里使用的setting中的默认设置,在这里不做具体的介绍,不懂的可以百度一下 conn = MySQLdb.conn ...

  6. [转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  7. Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  8. 转:Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

    转自:http://blog.csdn.net/business122/article/details/7536991 创建列表 sample_list = ['a',1,('a','b')] Pyt ...

  9. Python基础之 一 字典(dict)

    字典:是一种key - value的数据类型.语法:info = { key:value }特性:无序,key必须唯一(所以天生去重) 方法如下:del dict[key]:删除字典指定键len(di ...

随机推荐

  1. python leetcode 字符串相乘

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", num ...

  2. ERP结账不自动清台的解决办法

    1. 2. 完成以上设置即可

  3. python的datetime模块处理时间

    python的datetime模块主要用来处理时间,里面包含很多类,包括timedelay,date,time,datetime等 开发中经常会用到模块里面的datetime类,这是一个表示日期时间的 ...

  4. Win10更新

    Turn: https://m.uczzd.cn/webview/news?app=meizubrw-iflow&aid=11529477703533248224&cid=100&am ...

  5. mysql初始化提示安装perl

    all_db --user=mysql --datadir=/data/mysql", "delta": "0:00:00.222500", &quo ...

  6. c/c++ 用前序和中序,或者中序和后序,创建二叉树

    c/c++ 用前序和中序,或者中序和后序,创建二叉树 用前序和中序创建二叉树 //用没有结束标记的char*, clr为前序,lcr为中序来创建树 //前序的第一个字符一定是root节点,然后去中序字 ...

  7. IE6浏览器无法打开QQ邮箱

    原因:未启用TLS1.0 解决方法: 打开IE浏览器,依次打开 [Internet]→[高级],在 设置 选项卡中,勾选[使用TLS1.0],然后点击[确定]保存修改,重启浏览器即可.

  8. ping百度域名时的收获

    ping百度 你会发现ping www.baidu.com的时候,会转为ping www.a.shifen.com.但是ping baidu.com的时候却是普通的ip地址,而且ip地址还会变化.那么 ...

  9. js原生动态创建表格

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Nginx 安装配置

    Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...