我开始使用python,我尝试使用一个二维列表,我开始在每个地方都用相同的变量填充。我想到了这个:

def initialize_twodlist(foo):
    twod_list = []
    new = []
    for i in range (0, 10):
        for j in range (0, 10):
            new.append(foo)
        twod_list.append(new)
        new = []

它给出了预期的结果,但感觉像是一种变通方法。有更简单/更短/更优雅的方法吗?


当前回答

这是我发现的教新程序员最好的方法,而且不需要使用额外的库。不过我想要更好的。

def initialize_twodlist(value):
    list=[]
    for row in range(10):
        list.append([value]*10)
    return list

其他回答

[[foo for x in xrange(10)] for y in xrange(10)]
Matrix={}
for i in range(0,3):
  for j in range(0,3):
    Matrix[i,j] = raw_input("Enter the matrix:")

这里有一个更简单的方法:

import numpy as np
twoD = np.array([[]*m]*n)

要初始化所有带有任何'x'值的单元格,请使用:

twoD = np.array([[x]*m]*n

我经常使用这种方法初始化2维数组

N =[[int(x) for x in input().split()] for I in range(int(input())]

用最简单的思路来创建这个。

wtod_list = []

并添加尺寸:

wtod_list = [[0 for x in xrange(10)] for x in xrange(10)]

或者如果我们想先声明大小。我们只使用:

   wtod_list = [[0 for x in xrange(10)] for x in xrange(10)]