zoukankan      html  css  js  c++  java
  • 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)

    说明:

    第一种情况

    键入代码: 

     1 def make():
     2     dict = {
     3         'a': None
     4     }
     5     for a in range(3):
     6         dict['a'] = a
     7         yield dict
     8 
     9 list = []
    10 for val in make():
    11     print('添加前字典{},内存地址:{}'.format(val,id(val)))
    12     list.append((val,'内存地址:%d' % id(val)))
    13     print('添加前字典{},内存地址:{}'.format(val,id(val)))
    14 
    15 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')]

    说明:

    第二种情况

    键入代码:

     1 def make():
     2     for a in range(3):
     3         dict = {
     4             'a': a
     5         }
     6         yield dict
     7 
     8 list = []
     9 for val in make():
    10     print('添加前字典{},内存地址:{}'.format(val,id(val)))
    11     list.append((val,'内存地址:%d' % id(val)))
    12     print('添加前字典{},内存地址:{}'.format(val,id(val)))
    13 
    14 print(list)

     

    得到结果:

    1 添加前字典{'a': 0},内存地址:113784728
    2 添加前字典{'a': 0},内存地址:113784728
    3 添加前字典{'a': 1},内存地址:110699936
    4 添加前字典{'a': 1},内存地址:110699936
    5 添加前字典{'a': 2},内存地址:110699144
    6 添加前字典{'a': 2},内存地址:110699144
    7 [({'a': 0}, '内存地址:113784728'), ({'a': 1}, '内存地址:110699936'), ({'a': 2}, '内存地址:110699144')] 
  • 相关阅读:
    DIY 作品 及 维修 不定时更新
    置顶,博客中所有源码 github
    openwrt PandoraBox PBR-M1 极路由4 HC5962 更新固件
    使用 squid 共享 虚拟专用网至局域网
    第一次参加日语能力测试 N5
    libx264 libfdk_aac 编码 解码 详解
    开发RTSP 直播软件 H264 AAC 编码 live555 ffmpeg
    MFC Camera 摄像头预览 拍照
    http2 技术整理 nginx 搭建 http2 wireshark 抓包分析 server push 服务端推送
    plist 图集 php 批量提取 PS 一个个切
  • 原文地址:https://www.cnblogs.com/zwgbk/p/10251909.html
Copyright © 2011-2022 走看看