zoukankan      html  css  js  c++  java
  • (转)初始化多维数组

    Python 初始化多维数组

    链接: http://www.cnblogs.com/coderzh/archive/2008/05/18/1201993.html

     基本方法就是list里套list:

    Python中初始化一个5 x 3每项为0的数组,最好方法是:
    multilist = [[0 for col in range(5)] for row in range(3)]

    我们知道,为了初始化一个一维数组,我们可以这样做:
    alist = [0] * 5

    没错,那我们初始化一个二维数组时,是否可以这样做呢:
    multi = [[0] * 5* 3

    其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]:
    multi = [[0] * 5* 3
    multi[0][0] 
    = 'Love China'
    print multi
    输出的结果将是:
    [['Love China', 0, 0, 0, 0], ['Love China', 0, 0, 0, 0], ['Love China', 0, 0, 0, 0]]
    我们修改了multi[0][0],却把我们的multi[1][0],multi[2][0]也修改了。这不是我们想要的结果。

    如果我们这样写呢:
    multilist = [[0] * 5 for row in range(3)]
    multilist[0][0] 
    = 'Love China'
    print multilist
    我们看输出结果:
    [['Love China', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    恩,没问题。但是,由于使用 * 的方法比较容易引起混淆导致Bug,所以还是推荐使用上面第一种方法,即:
    multilist = [[0 for col in range(5)] for row in range(3)]

      

    ...

    python list 的复制拷贝的简单介绍

    list ”=“的效果

    在python中,又时需要复制一个list,但是用"="是达不到复制的效果的。

    比如:

     l1=['hello','world']  

    l2=l1  


    这时候,只不过又添加了一个指向list的”指针“l2.换句话说,是给同一件商品贴上了两个标签。如下图:

    可以做一下测试:

    >>> l1=["hello","world"]  

    >>> l2=l1  

    >>> l1[0]="world"

    >>> print l1  

    ['world''world']  

    >>> print l2  

    ['world''world']  

    如果要对list进行复制,建议采用切片的方法:

    l2=l1[:],例如:

    >>> l1=["hello","world"]  

    >>> l2=l1[:]  

    >>> print l1  

    ['hello''world']  

    >>> print l2  

    ['hello''world']  

     

    >>> l1[0]="world"

    >>> print l1  

    ['world''world']  

    >>> print l2  

    ['hello''world']  

  • 相关阅读:
    jq隐藏页面的一行(循环隐藏10行)
    Button的OnClientClick()事件不起作用?
    Infopath自定义表单实现列表字段联动
    SharePoint 2013的传出电子邮件设置
    codeforces Looksery Cup 2015 D. Haar Features
    codeforces Looksery Cup 2015 H Degenerate Matrix
    poj3321 Apple Tree
    poj1990 MooFest
    poj2155 Matrix
    hdu1556 Color the ball
  • 原文地址:https://www.cnblogs.com/lifegoesonitself/p/3064506.html
Copyright © 2011-2022 走看看