簡體   English   中英

如何阻止我的 function 在每個列表中輸入值?

[英]How do I stop my function from entering a value into every list?

對於我的分配,我需要在包含 3 個列表的列表的子列表中的特定索引中插入一個值。 它不是僅更改 1 個子列表中的值,而是在每個子列表中更改它。

我嘗試重新輸入用於確定索引的值。

def make_move(cur, move, player):
  m0 = move[0]
  m1 = move[1]
  cur[m0][m1] = player
make_move(world, (1,0), 'X')
print(world)

我希望 output 是:

[['', '', ''], ['X', '', ''], ['', '', '']]

我收到的是:

[['X', '', ''], ['X', '', ''], ['X', '', '']]

我做了世界function如下:

def set_up_game(size):
  n = 0
  num = 0
  s = int(get_game_size(size))
  game = []
  rows = []
  columns = ''
  while n < s:
    rows.append(columns)
    n += 1
  while num < s:
    game.append(rows)
    num += 1

  return game

問題是這條線:

game.append(rows)

將其更改為:

game.append(list(rows))

這將在game列表中創建新列表。


您最初所做的(使用 while 循環)相當於:

game = [row] * num

你可以在這里看到這樣做的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM