Pythonで二次元配列を初期化するには?



Answers

あなたはリスト内包を使うことができます:

x = [[foo for i in range(10)] for j in range(10)]
# x is now a 10x10 array of 'foo' (which can depend on i and j if you want)
Question

私はPythonを始めていますが、2次元のリストを使用しようとしています。最初はすべての場所で同じ変数を埋めています。 私はこれを思いついた:

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 = []

これは望ましい結果をもたらしますが、回避策のように感じます。 これを行うには、より簡単な、より短い、よりエレガントな方法がありますか?




t = [ [0]*10 for i in [0]*10]

各要素に対して、新しい[0]*10が作成されます。




最も単純な考えを使ってこれを作成してください。

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)]



これは私が新しいプログラマーを教え、追加のライブラリを使わずに見つけた最高のものです。 私は何かをより良くしたいと思います。

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



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



[[foo for x in xrange(10)] for y in xrange(10)]



from random import randint
l = []

for i in range(10):
    k=[]
    for j in range(10):
        a= randint(1,100)
        k.append(a)

    l.append(k)




print(l)
print(max(l[2]))

b = []
for i in range(10):
    a = l[i][5]
    b.append(a)

print(min(b))



Pythonで二次元配列を初期化するには:

a = [[0 for x in range(columns)] for y in range(rows)]



あなたはこれだけを行うことができます:

[[element] * numcols] * numrows

例えば:

>>> [['a'] *3] * 2
[['a', 'a', 'a'], ['a', 'a', 'a']]

しかし、これには望ましくない副作用があります。

>>> b = [['a']*3]*3
>>> b
[['a', 'a', 'a'], ['a', 'a', 'a'], ['a', 'a', 'a']]
>>> b[1][1]
'a'
>>> b[1][1] = 'b'
>>> b
[['a', 'b', 'a'], ['a', 'b', 'a'], ['a', 'b', 'a']]



Related