1. ホーム
  2. python

[解決済み] Pythonでグリッドを作るには?

2022-02-16 16:12:46

質問内容

これは私のコードです

width = int(input("How wide?"))
height = int(input("How high?"))
grid = []
row = []
bak = "."
for i in range(width):
    row.append(bak)
for i in range(height):
    grid.append(row)
while True:
    for i in range(len(grid)):
        print(grid[i])

なぜかうまくいきません。幅と高さを5ずつにすると、このようになります。

['.', '.', '.', '.', '.']
['.', '.', '.', '.', '.']
['.', '.', '.', '.', '.']
['.', '.', '.', '.', '.']
['.', '.', '.', '.', '.']

それはいいのですが、左下のドットを次のように変更すると、grid[0][0] = "a" となります。 このようになります。

['a', '.', '.', '.', '.']
['a', '.', '.', '.', '.']
['a', '.', '.', '.', '.']
['a', '.', '.', '.', '.']
['a', '.', '.', '.', '.']

明らかにタグではないコードなのに、quot;row" のリストをタグだと思い込んでしまいます。 この問題を解決するにはどうしたらよいでしょうか?

解決方法は?

list()を使用する

gridline = []
for i in range(5):
    gridline.append("")
grid = []
for i in range(5):
    grid.append(list(gridline))