python调用数据返回字典dict数据的现象2
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的更多相关文章
- python调用数据返回字典dict数据的现象1
python调用数据返回字典dict数据的现象1 思考: 可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同.使用相同的调用方式,而结果却完全不同.可以看到第二种情况才是我 ...
- Django查询数据库返回字典dict数据
个人观点: 个人认为,在Django项目中, 开发团队为了让使用该框架的用户都使用自带的序列化功能,从而让框架中的SQL返回值很不直观,对于直接使用SQL语句的用户很犯难. 解决: from djan ...
- [python] 查询mysql返回datetime类型数据的处理
Python 查询Mysql,如果是datetime类型,在json序列化的时候会出现问题. 在网上查了一下,解决方案基本都是遍历dict数据,如果是datetime则转化为字符串. from dat ...
- 使用Python调用Flickr API抓取图片数据
Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...
- python 执行sql得到字典格式数据
本文在提供一种方式,实现执行sql语句 返回字典结果集 # 连接数据库,数据库的,这里使用的setting中的默认设置,在这里不做具体的介绍,不懂的可以百度一下 conn = MySQLdb.conn ...
- [转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- 转:Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
转自:http://blog.csdn.net/business122/article/details/7536991 创建列表 sample_list = ['a',1,('a','b')] Pyt ...
- Python基础之 一 字典(dict)
字典:是一种key - value的数据类型.语法:info = { key:value }特性:无序,key必须唯一(所以天生去重) 方法如下:del dict[key]:删除字典指定键len(di ...
随机推荐
- python leetcode 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", num ...
- ERP结账不自动清台的解决办法
1. 2. 完成以上设置即可
- python的datetime模块处理时间
python的datetime模块主要用来处理时间,里面包含很多类,包括timedelay,date,time,datetime等 开发中经常会用到模块里面的datetime类,这是一个表示日期时间的 ...
- Win10更新
Turn: https://m.uczzd.cn/webview/news?app=meizubrw-iflow&aid=11529477703533248224&cid=100&am ...
- mysql初始化提示安装perl
all_db --user=mysql --datadir=/data/mysql", "delta": "0:00:00.222500", &quo ...
- c/c++ 用前序和中序,或者中序和后序,创建二叉树
c/c++ 用前序和中序,或者中序和后序,创建二叉树 用前序和中序创建二叉树 //用没有结束标记的char*, clr为前序,lcr为中序来创建树 //前序的第一个字符一定是root节点,然后去中序字 ...
- IE6浏览器无法打开QQ邮箱
原因:未启用TLS1.0 解决方法: 打开IE浏览器,依次打开 [Internet]→[高级],在 设置 选项卡中,勾选[使用TLS1.0],然后点击[确定]保存修改,重启浏览器即可.
- ping百度域名时的收获
ping百度 你会发现ping www.baidu.com的时候,会转为ping www.a.shifen.com.但是ping baidu.com的时候却是普通的ip地址,而且ip地址还会变化.那么 ...
- js原生动态创建表格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Nginx 安装配置
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...