Найти - Пользователи
Полная версия: Двумерный массив
Начало » Python для новичков » Двумерный массив
1
lupanton
Добрый день!
Создаю двумерный массив, заполненный 0. Нужно для всех элементов массива, у которых i > j, установить значение 1.

Вот такой код:

 n = int(input()) #Значение n
a = [['0'] *n] * n #Создаю массив, заполненный 0
for i in range(n): # Цикл для обхода массива
    for j in range(n):
        if i > j:
            a[i][j] = 1
for row in a:
    print(' '.join([str(elem) for elem in row]))

Выдает:
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0

Мне нужно:
0 0 0 0 0
1 0 0 0 0
1 1 0 0 0
1 1 1 0 0
1 1 1 1 0

Подскажите, пожалуйста, где ошибка?
Romissevd
Здесь проблема в том, как ты создаешь список изначально. Вот тут немного написано об этом.
 n = int(input()) #Значение n
a = [ [0] * n for i in range(n)] #Создаю массив, заполненный 0
for i in range(n): # Цикл для обхода массива
    for j in range(n):
        if i > j:
            a[i][j] = 1
for row in a:
    print(' '.join([str(elem) for elem in row]))
vic57
 #a = [ [0] * n for i in range(n)] #Создаю массив, заполненный 0
>>>a = [[0 for j in range(n)] for i in range(n)]
>>> a = [[1 if i>j else 0 for j in range(3)] for i in range(3)]
>>> for i in a: print(i)
[0, 0, 0]
[1, 0, 0]
[1, 1, 0]
>>> 
lupanton
Спасибо! Разобрался.
 n = int(input())
a = [ ['.'] * n for i in range(n)]
for i in range(n):
        for j in range(n):
        if i > j:
            a[i][j] = 1
for row in a:
    print(' '.join([str(elem) for elem in row]))

Выдает то, что надо:
0 0 0 0 0
1 0 0 0 0
1 1 0 0 0
1 1 1 0 0
1 1 1 1 0
marvellik
 a = [[ 0 for _ in range(n)] for _ in range(n)] #Создаю массив, заполненный 0
строка
 a[i][i] = 0
теперь лишняя
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB