Как создать двумерный массив?

Как создать двумерный массив из '*' , чтобы можно было обратиться к определённому элементу из строки и столбца этого массива.

board = ['*','*','*','*',]
def draw_board(board):
    print('-' * 21)
    for i in range(4):
        print("|", board[0], "|", board[0], "|", board[0], "|", board[0], "|", board[0], "|")
        print("-" * 21)
draw_board(board)

Вывод :

---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------

Сделал какую-то фигню и теперь не понимаю как обращаться к элементам.


Ответы (3 шт):

Автор решения: Zhihar

двухмерный массив - это просто массив массивов

например создание массива 10x10:

arr = [['*' for y in range(10) ] for x in range(10)]
arr[1][3] = 1
print(arr)
→ Ссылка
Автор решения: strawdog
dim = 5 # размерность массива (квадратная матрица)
arr = [['*' for x in range(dim)] for y in range(dim)] # сам массив

собственно, все. Если вам нужно нарисовать фигуру из этого массива, то вот так можно:

def draw_board(a: list):
    print("-"*(len(arr)*4+1))
    for i in range(len(a)):
        print("|", end="")
        for j in range(len(a[0])):
            print(f" {a[i][j]} |", end="")
#a[i][j] - это и есть обращение к элементу двумерного массива
        print("\n"+"-"*(len(arr)*4+1))
    
draw_board(arr)    
---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------
| * | * | * | * | * |
---------------------
→ Ссылка
Автор решения: Exe

Используйте numpy.

import numpy as np
array = np.full((5, 5), "*", dtype=np.str)
print(array)

Вывод

[['*' '*' '*' '*' '*']
 ['*' '*' '*' '*' '*']
 ['*' '*' '*' '*' '*']
 ['*' '*' '*' '*' '*']
 ['*' '*' '*' '*' '*']]
→ Ссылка