Сгенерировать матрицу python
помогите написать генератор для двух матриц
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
и
0 1 1 1 1 1 1 0
4 0 1 1 1 1 0 2
4 4 0 1 1 0 2 2
4 4 4 0 0 2 2 2
4 4 4 0 0 2 2 2
4 4 0 3 3 0 2 2
4 0 3 3 3 4 0 2
0 3 3 3 3 3 3 0
В таком виде:
[[ i * j for j in range(m)] for i in range(n)]
Заранее спасибо!
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
from pprint import pprint
def matrix_1(rows=5, cols=6):
return [
[
1 - (i+j)%2
for j in range(cols)
]
for i in range(rows)
]
def matrix_2(size=8):
return [
[
0 if i == j or i + j + 1 == size
else 1 if j > i and i + j + 1 < size
else 2 if j > i and i + j + 1 > size
else 3 if j < i and i + j + 1 > size
else 4
for j in range(size)
]
for i in range(size)
]
pprint(matrix_1())
print()
pprint(matrix_2())
[[1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0]]
[[0, 1, 1, 1, 1, 1, 1, 0],
[4, 0, 1, 1, 1, 1, 0, 2],
[4, 4, 0, 1, 1, 0, 2, 2],
[4, 4, 4, 0, 0, 2, 2, 2],
[4, 4, 4, 0, 0, 2, 2, 2],
[4, 4, 0, 3, 3, 0, 2, 2],
[4, 0, 3, 3, 3, 3, 0, 2],
[0, 3, 3, 3, 3, 3, 3, 0]]