1

リストについて質問があります。と呼ばれる長さ 1 のリストがsizeありsize=[4]ます。

そして私はボードを持っています、そしていくつかのセルはsize他の値の中で値として持っています。私は説明します:

  • ボードは17x17です
  • board[x][y] = ("name_of_something", size)

に更新sizeしたい、としましょう、そして、値として[3]持つすべてのセルも からに更新したいと思います。size("name_of_something", [4])("name_of_something", [3])

しかし、私は全面的に実行せずにこれをしたいです!これどうやってするの?

ここに画像があります: http://up400.siz.co.il/up2/utg4yidtnmz1.jpg

4

2 に答える 2

2

あなたのイメージに応じて:

>>> size = [4]
>>> a = ('nadav', 3, size)
>>> size = [3]
>>> a
('nadav', 3, [4])

あなたがしているのは、古いリストを指している間に新しいリストを割り当てることです。代わりに、既存のリストを変更する必要があります。sizea

>>> size = [4]
>>> a = ('nadav', 3, size)
>>> size[:] = [3]
>>> a
('nadav', 3, [3])
于 2013-11-08T15:25:25.447 に答える
0

ボードを作成するときは、すべてのセルが同じリストを参照していることを確認してください。

たとえば、これを参照してください。

size=[3]
n_rows=3
n_cols=3
board=[
  [('cell %d,%d'%(row,col),size) for col in range(n_cols)] 
  for row in range(n_rows)
]
print('Before:')
for row in board:
  print('  '+str(row))
size[0] = 4
print('After:')
for row in board:
  print('  '+str(row))

結果:

前:
  [('セル 0,0', [3]), ('セル 0,1', [3]), ('セル 0,2', [3])]
  [('セル 1,0', [3]), ('セル 1,1', [3]), ('セル 1,2', [3])]
  [('セル 2,0', [3]), ('セル 2,1', [3]), ('セル 2,2', [3])]
後:
  [('セル 0,0', [4]), ('セル 0,1', [4]), ('セル 0,2', [4])]
  [('セル 1,0', [4]), ('セル 1,1', [4]), ('セル 1,2', [4])]
  [('セル 2,0', [4]), ('セル 2,1', [4]), ('セル 2,2', [4])]
于 2013-11-08T14:38:49.217 に答える