-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmatrix.py
More file actions
132 lines (116 loc) · 5.15 KB
/
Copy pathmatrix.py
File metadata and controls
132 lines (116 loc) · 5.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#Для начала попробую создать список и просумировать его по циклу
a = [[1,2,3,4], [5],[6,7],[8,9]]
s = 0 # Переменная глобальная в которую будем записывать сумму
for row in a: # Выберется [1,2,3,4]
for elem in row: #Выберем первый элем списка [1,2,3,4]
s += elem
print(s)
# ----------------------------------------------------------------------
# Пример 2
# ----------------------------------------------------------------------
#Creating a empty list of n elements, each will be a list.
#Consisting of m zeros
n = 3 #global variables
m = 4
a = [[0] * m for i in range(n)]
#Коменты для себя
#Грубо говоря, как я понимаю. Обчный цикл фор. Умножаем "0 на м"
#Циклом прогоняем "итую" переменную в диапазоне "н".В итоге на выходе список в списке
#двумерный массив.
print(a) #[[0,0,0,0],[0,0,0,0],[0,0,0,0]] так как н равно 3. считаем с 0. 0 1 2
#----------------------------------------------------------------------
# Пример 3
#----------------------------------------------------------------------
# Погуглил и нашел второй вариант
n = 3 #global variables
m = 4
a = [] # empty list
for i in range(n):
a.append([0] * m)
#Для "и" в диапазоне "н" то есть до 3
#запиши в пустой список нули умноженные на переменную "м"
#Если вывести то будет двумерный массив с 4мя нулями
#----------------------------------------------------------------------
# Пример 4
#----------------------------------------------------------------------
# Пример с интернета. Хочу понять как работает все
#Функции - input. Ввод данных
#Методы: append - добавление єлем. в конец списка a[],
#split - разбиваем строку.
n = int(input()) #считываем строку, преобразовываем в числовое значение
a = [] # пустой список
for i in range(n): #для "и" в пределах "н", а н у нас это значения которые введет человек
a.append([int(j) for j in input().split()]) #добавь в конец списка целлочисл. значнение j
# и выведи его в строку(так как цикл фор)
#и разбей с помощью метода split
#----------------------------------------------------------------------
# Пример 5
#----------------------------------------------------------------------
# print('Enter the numbers?')
n = int(input())
a = []
for i in range(n):
row = input().split()
for i in range(len(row)):
row[i] = int(row[i])
a.append(row)
print(a)
# Второй способ при помощи генератора
n = int(input())
a = [[int(j) for j in input().split()] for i in range(n)]
#----------------------------------------------------------------------
# Пример 6
#----------------------------------------------------------------------
#Вывести 1 по диагонале
n = 4
a = [[0] * n for i in range(n)]
for i in range(n):
for j in range(n):
if i < j:
a[i][j] = 0
elif i > j:
a[i][j] = 2
else:
a[i][j] = 1
for row in a:
print(' '.join([str(elem) for elem in row]))
#Вроде понял как работает код, посмотрю как можно улучшить. Другие варинаты.
# Цикл для задания 1(еденичек)
for i in range(n):
a[i][i] = 1
#--------------------------------------------------------
# Вторая задача из файла
#--------------------------------------------------------
#Write matrix m * n, k - element wich will be initialized (number, or letter)
# matrix = [[1,2,3,4], [1,2,3,4], [1,2,3,4]]
# for row in matrix:
# for i in row:
# print(i)
# Алгоритм:
# Задаем пустой список - матрица[]
# Цикл фор в дипазоне от(0 до 5,6,7 и тд)
# Запиши в матрицу, в конец массива (append ["0"] * 3)
#
# Объявдяем функцию, аргумент у нее(список - матрица)
# Цикл фор для подстрок в спике "матрица"
# выведи подстроки разделенные пробелом
# " ".join(матрица)
def generate_list(m, k):
result = []
for i in range(m):
result.append(k)
return result
#Test values
generate_list(10,-1)
generate_list(9,3)
#Our function wich creates and initializes matrix
def generate_matrix(m, n, k):
result = []
for i in range(m):
result.append([k]*n)
return result
print(generate_matrix(2, 3, -1))
# initializing(defining) matrix
def generate_matrix(m, n, k):
return generate_list(m, generate_list(n, k))
print(generate_matrix(2,3,-1))