LINUX.ORG.RU

Как в Python ввести квадратную матрицу?

 


0

1

Здравствуйте.

В C++ ввести квадратную матрицу можно так:

for (i = 0; i < n; i++) for (j = 0; j < n; j++) cin >> a[i][j];

Как в Python ввести квадратную матрицу?

По несколько чисел в строке. Например, такую:

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


Последнее исправление: TrollBotische (всего исправлений: 1)
Ответ на: комментарий от Sahas
matrix = [line.strip().split() for line in Path('matrix.txt').open()]

Но, я больше за reduce, потому что любой ввод практически всегда требует какой-то обработки.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black
matrix = [[float(x) for x in line.split()] for line in open('matrix.txt')]

strip ненужен, split его и так делает.

А вот кастовать к флоту нужно.

И reduce для совсем других вещей юзается., когда из множества элементов надо получить что то одно. Здесь размерность не меняется.

ну и ТС все таки хочет работать с stdin:

matrix = [[float(x) for x in line.split()] for line in sys.stdin]
AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 2)
Ответ на: комментарий от bugfixer

В питоне каждый чих это аллокация и беспощадное ворочание байт-машины. Для каждого элемента. На этом фоне, да с размерами данных как у ТС, все остальное меркнет.

В этом смысле join и генератор списков (скобочки []) хотя бы часть работы делают унутрях сей без лишних телодвижений.

Я исключительно про стиль погромирования говорил. Питон это вообще не про скорость.

AntonI ★★★★★
()
Ответ на: комментарий от bugfixer

На питоне можно очень быстро и лаконично писать код. Где то на порядок быстрее чем на плюсах. За это его и любят.

Особенно по контрасту с каким нить стандартом плюсов 2008 года на котором я сейчас вынужден сидеть в одном проекте…

А ещё питон прост и интуитивно понятен:-)

AntonI ★★★★★
()
Ответ на: комментарий от DumLemming

Не-не, это тоже слишком сложно. Нужно распознавание с камеры смартфона, что бы навел на страничку теста и вуаля. А лучше голосовой ввод

  • Алиса, введи квадратную матрицу!
  • Квадратная матрица введена.
AntonI ★★★★★
()