Форум сайта python.su
Добрый день!
Создаю двумерный массив, заполненный 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]))
Отредактировано lupanton (Март 25, 2018 18:31:00)
Офлайн
Здесь проблема в том, как ты создаешь список изначально. Вот тут немного написано об этом.
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]))
Офлайн
#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] >>>
Отредактировано vic57 (Март 25, 2018 19:21:52)
Офлайн
Спасибо! Разобрался.
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]))
Отредактировано lupanton (Март 25, 2018 20:32:53)
Офлайн
a = [[ 0 for _ in range(n)] for _ in range(n)] #Создаю массив, заполненный 0
a[i][i] = 0
Отредактировано marvellik (Март 25, 2018 19:55:32)
Офлайн