-1

これはコードです:

for(int i=1; i<=10; ++i)
    for(int j=1; j<=10; ++j)
        cin >> G[i][j];

これは 2 次元配列 G であり、ゼロからではなく G[1][1] からデータを格納したいと考えています。

このコードを Python で実装するにはどうすればよいですか?

4

5 に答える 5

3
for i in xrange(1, 11):
    for j in xrange(1, 11):
        G[i][j] = raw_input()

または、ループの前にGが空であると仮定して、よりPython的な方法を使用します。

G = [[raw_input() for j in xrange(1, 11)] for i in xrange(1, 11)]

(機能しません。これらのリストの最初の値は要素0にありますが、これはOPが望んでいるものではありません)

于 2012-04-13T08:39:29.947 に答える
2

初期化中G:

G = [[0 for i in xrange(11)] for i in xrange(11)]

またG = [[0]*11]*11

取り込み中G:

for i in xrange(10):
    for j in xrange(10):
        G[i+1][j+1] = int(raw_input())

その場で構築したい場合はG、初期化に似たネストされたリスト内包表記でそれを行うことができます

于 2012-04-13T08:41:23.357 に答える
2
>>> import random
>>> G = [[0]*11 for _ in range(11)]
>>> G
[[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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> for i in range(1, 11):
        for j in range(1, 11):
            G[i][j] = random.randint(1,10)


>>> G
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 7, 8, 10, 5, 7, 9, 8, 10, 8, 3], [0, 7, 9, 7, 7, 6, 6, 10, 2, 8, 9], [0, 10, 6, 3, 7, 10, 7, 9, 6, 1, 7], [0, 5, 7, 1, 10, 3, 3, 1, 2, 5, 6], [0, 7, 3, 5, 4, 4, 2, 10, 10, 8, 1], [0, 10, 3, 3, 5, 4, 4, 2, 5, 3, 1], [0, 6, 6, 6, 6, 2, 3, 8, 1, 6, 4], [0, 7, 8, 5, 8, 1, 9, 5, 5, 2, 9], [0, 3, 2, 4, 1, 1, 4, 7, 7, 5, 5], [0, 3, 4, 10, 1, 2, 5, 3, 10, 9, 7]]

random.randint代わりに、input()またはraw_input()これが機能することを示すために使用されました。

于 2012-04-13T08:49:23.383 に答える
1

読みやすさを重視するなら、これもかなり読みやすい

G=[[0]*11 for _ in range(11)]
for (i,j) in itertools.product(range(1,11),range(1,11)):
    while True:
        try: 
            G[i][j]=int(raw_input())
            break
         except ValueError:
            None
于 2012-04-13T09:27:17.607 に答える
1

辞書の使用:

G = {}
for i in xrange(1, 11):
    G[i] = {}
    for j in xrange(1, 11):
        G[i][j] = raw_input()

リストの使用 (ただし、インデックスは 0 から開始):

G = []
for _ in xrange(1, 11):
    row = []
    G.append(row)
    for _ in xrange(1, 11):
        row.append(raw_input())
于 2012-04-13T08:48:16.720 に答える