zoukankan      html  css  js  c++  java
  • 列表的不同引用

    #_*_ encoding: utf-8 _*_   @author: ty  heris
    #项目名称:   pycharm_file 会自动替换为当前项目名称
    #创建时间:  2018/5/6 会自动替换为当前日期
    
    lst1 = [[0]*5]*5
    print(lst1)
    # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    #
    lst2 = [[0 for i in range(5)] for j in range(5)]
    print(lst2)
    # # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    #
    # # 两种生成效果是一致的吗?乍一看,貌似一致,其实不然。
    lst1[0][0]=1
    print(lst1)
    # # [[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]
    #
    lst2[0][0]=1
    print(lst2)
    # # [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    #
    # # 可以看出lst1 = [[0]*5]*5 其实只有一行申请了内存,其他的4行都引用该行,因此赋值时每一行都会发生变化。
    
    输出:
    [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    [[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]
    [[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    
    
    
    写入自己的博客中才能记得长久
  • 相关阅读:
    IOS中浏览器修改document.title不起作用
    he content must be served over HTTPS 解决方案
    Nuxt开发经验分享
    Nuxt插件-axios封装
    requestAnimationFrame & 定时器
    Vue 组件中data为什么是函数
    js-鸡兔同笼方程
    css技巧-清明追思-网站置灰
    详细分享TortoiseGit配置密钥的方法
    js
  • 原文地址:https://www.cnblogs.com/heris/p/14664958.html
Copyright © 2011-2022 走看看