python 2.4*

  1. python 创建二维列表,将需要的参数写入 cols 和 rows 即可

    list_2d = [[0 for col in range(cols)] for row in range(rows)]

    实例:

    >>> list_2d = [ [0 for i in range(5)] for i in range(5)]
    >>> list_2d[0].append(3)
    >>> list_2d[0].append(5)
    >>> list_2d[2].append(7)
    >>> list_2d
    [[0, 0, 0, 0, 0, 3, 5], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 7], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    tianqixin

       tianqixin

      429***[email protected]

       参考地址

    1年前 (2017-02-25)
  2.    c@sm

      149***[email protected]

    列表的复制

    >>> a = [1, 2, 3]
    >>> b = a
    >>> c = []
    >>> c = a
    >>> d = a[:]
    >>> a, b, c, d
    ([1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3])
    >>> b[0] = 'b'
    >>> a, b, c, d
    (['b', 2, 3], ['b', 2, 3], ['b', 2, 3], [1, 2, 3])
    >>> id(a), id(b), id(c), id(d)
    (140180778120200, 140180778120200, 140180778120200, 140180778122696)
    >>> c[0] = 'c'
    >>> a, b, c, d
    (['c', 2, 3], ['c', 2, 3], ['c', 2, 3], [1, 2, 3])
    >>> id(a), id(b), id(c), id(d)
    (140180778120200, 140180778120200, 140180778120200, 140180778122696)
    >>> d[0] = 'd'
    >>> a, b, c, d
    (['c', 2, 3], ['c', 2, 3], ['c', 2, 3], ['d', 2, 3])
    >>> id(a), id(b), id(c), id(d)
    (140180778120200, 140180778120200, 140180778120200, 140180778122696)

    可以看到a b c 三个是同一id值,当改变当中任一列表元素的值后,三者会同步改变。

    但d的元素值不会变,改变d的元素值其它三个变量内的元素值也不会变。

    从a b c d 的id值来看,a b c 地址全一样,唯有d分配了新地址。

    所以一般情况下想复制得到一个新列表并改变新列表内元素而不影响原列表,可以采用d的赋值方式。

    这只是针对这种比较单一的普通列表。

    c@sm

       c@sm

      149***[email protected]

    10个月前 (07-10)
  3.    Lmac

      lma***[email protected]

    @sm 同学提到的列表的复制问题,其实可以用copy模块里 copy()函数解决,实例如下:

    import copy
    
    a = [1,2,3,4]
    b = a
    d = copy.copy(a)
    b[0] = 'b'
    print(a,b,d)
    print(id(a),id(b),id(d))
    Lmac

       Lmac

      lma***[email protected]

    7个月前 (09-25)
  4.    david

      185***[email protected]

    楼上两位同学说的都对,还有一个就是用list自带的copy()方法,把重新开辟内存空间存储新列表。

    original_list=[0,1,2,3,4,5,6,7,8]
    copy_list=original_list.copy()
    copy_list=copy_list+['a','b','c']
    print("original_list:",original_list)
    print("copy_list modify:",copy_list)

    运行结果

    original_list: [0, 1, 2, 3, 4, 5, 6, 7, 8]
    copy_list modify: [0, 1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b', 'c']
  5.    182yzh_

      182***[email protected]

    空列表可以简单地通过两个中括号进行表示([])- 一里面什么东西都没有,但是,如果想创建一个占用十个元素空间,却不包括任何有用内容的列表,又该怎么办呢?首先可以类似于下面的方法,用某一个具体的值代替。

    >>> list_empty = [0]*10
    >>> list_empty
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    这样就生成了一一个包括10个0的列表。然而,有时候可能会需要一个值来代表空一意味着没有在里面放置任何元素。这个时候就需要使用None。None 是一个Python的内建值,它的确切含意是"这里什么也没有"。因此,如果想初始化个长度为10的列表,可以按照下面的例子来实现:

    >>> list_empty = [None]*10
    >>> list_empty
    [None, None, None, None, None, None, None, None, None, None]

    这样就可以再去对list的各个元素进行初始化了

猜你喜欢

转载自blog.csdn.net/weixin_41071202/article/details/80246427