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')] 
  • 相关阅读:
    python 中的subprocess
    Pandas 的基本操作
    mongodb的基本操作
    Mongodb的安装
    Mysql has gone way (Django 下的解决方法)
    python 中的魔法类
    python2与python3共存时的pip问题
    Tango with django 1.9 中文——3.Django基础
    bootstrap日期范围选择插件daterangepicker详细使用方法
    Django Static与Media
  • 原文地址:https://www.cnblogs.com/zwgbk/p/10251909.html
Copyright © 2011-2022 走看看