python — Ввод и вывод двумерного массива
Вопрос задан
Изменён 5 лет 3 месяца назад
Просмотрен 35k раз
Как реализовать ввод (с клавиатуры) и вывод двумерного массива в виде таблицы в Python?
Я начал изучать питон, но столкнулся с проблемой: не могу освоить ввод и вывод двумерного массива. Помогите, пожалуйста. Спасибо.
- python
- массивы
11
Есть еще вариант использовать коллекцию с кортежем в качестве индекса:
a = {} for i in range(5): for j in range(5): a[i,j] = int(input())
Вывести в виде таблицы можно так:
# первой строкой, только для python 2 from __future__ import print_function for i in range(5): print(*[a[i,j] for j in range(5)])
print [[raw_input() for i in xrange(3)] for j in xrange(3)]
1
Чтобы прочитать числа, разделёнными пробелами, из стандартного ввода в numpy
массив:
import sys import numpy # $ pip install numpy a = numpy. loadtxt(sys.stdin)
Если в строке больше одного числа, то двумерный массив автоматически создаётся (каждая строка это ряд), иначе можно вызвать a.reshape(5, -1)
, чтобы 2D массив получить.
К примеру, ввод:
1 2 3 4
Создаёт:
array([[ 1., 2.], [ 3., 4.]])
Чтобы создать 2D Питон список для того же ввода:
L = [list(map(float, line.split())) for line in sys.stdin]
Результат:
>>> L [[1.0, 2.0], [3.0, 4.0]]
См. Reading file string into an array (In a pythonic way).
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Двумерный массив в python и обработка элементов массива
На уроке рассматриваются алгоритмы работы с двумерными массивами в Python: создание матрицы, инициализация элементов, вывод, обработка элементов матрицы
Содержание:
- Создание, вывод и ввод матрицы в Питоне
- Обработка элементов двумерного массива
Создание, вывод и ввод матрицы в Питоне
- Таким образом, получается структура из вложенных списков, количество которых определяет количество строк матрицы, а число элементов внутри каждого вложенного списка указывает на количество столбцов в исходной матрице.
- Вывод матрицы можно осуществить одним оператором, но такой простой способ не позволяет выполнять какой-то предварительной обработки элементов:
Для работы с матрицами в Python также используются списки.
Каждый элемент списка-матрицы содержит вложенный список.
Рассмотрим пример матрицы размера 4 х 3:
matrix = [[-1, 0, 1], [-1, 0, 1], [0, 1, -1], [1, 1, -1]] |
Данный оператор можно записать в одну строку:
matrix = [[-1, 0, 1], [-1, 0, 1], [0, 1, -1], [1, 1, -1]] |
print(matrix) |
Результат:
- способ:
- способ:
1 2 3 4 5 | def printMatrix ( matrix ): for i in range ( len(matrix) ): for j in range ( len(matrix[i]) ): print ( "{:4d}". |
В примере i – это номер строки, а j – номер столбца;
len(matrix) – число строк в матрице.
1 2 3 4 5 | def printMatrix ( matrix ): for row in matrix: for x in row: print ( "{:4d}".format(x), end = "" ) print () |
Внешний цикл проходит по строкам матрицы (row), а внутренний цикл проходит по элементам каждой строки (x).
1 2 3 4 | from random import randint n, m = 3, 3 a = [[randint(1, 10) for j in range(m)] for i in range(n)] print(a) |
Обработка элементов двумерного массива
Нумерация элементов двумерного массива, как и элементов одномерного массива, начинается с нуля.
Т.е. matrix[2][3]
— это элемент третьей строки четвертого столбца.
Пример обработки элементов матрицы:
Найти произведение элементов двумерного массива.
✍ Решение:
1 2 3 4 5 | p = 1 for i in range(N): for j in range(M): p *= matrix[i][j] print (p) |
Пример:
Найти сумму элементов двумерного массива.
✍ Решение:
Более подходящий вариант для Python:
1 2 3 4 | s = 0 for row in matrix: s += sum(row) print (s) |
Для поиска суммы существует стандартная функция sum.
Задание Python 8_0:
Получены значения температуры воздуха за 4 дня с трех метеостанций, расположенных в разных регионах страны:
Номер станции | 2-й день | 3-й день | 4-й день | |
---|---|---|---|---|
1 | -8 | -14 | -19 | -18 |
2 | 25 | 28 | 26 | 20 |
3 | 11 | 18 | 20 | 25 |
Т. е. запись показаний в двумерном массиве выглядела бы так:
t[0][0]=-8 | t[0][1]=-14 | t[0][2]=-19 | t[0][3]=-18 |
t[1][0]=25 | t[1][1]=28 | t[1][2]=26 | t[1][3]=20 |
t[2][0]=11 | t[2][1]=18 | t[2][2]=20 | t[2][3]=25 |
- Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.
- Распечатать показания термометров всех метеостанций за 2-й день.
- Определить среднюю температуру на 3-й метеостанции.
- Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.
Задание Python 8_1:
Написать программу поиска минимального и максимального элементов матрицы и их индексов.
Задание Python 8_2:
Написать программу, выводящую на экран строку матрицы, сумма элементов которой максимальна.
for i in range(N): # работаем с matrix[i][i] |
for i in range(N): # работаем с matrix[i][N-1-i] |
Пример:Переставить 2-й и 4-й столбцы матрицы. Использовать два способа.
✍ Решение:
for i in range(N): c = A[i][2] A[i][2] = A[i][4] A[i][4] = c |
for i in range(N): A[i][2], A[i][4] = A[i][4], A[i][2] |
Задание Python 8_3:
Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу размерностью N. Определить:
Ввод матрицы от пользователя в Python
Матрица — это не что иное, как прямоугольное расположение данных или чисел. Другими словами, это прямоугольный массив данных или чисел. Горизонтальные записи в матрице называются «строками», а вертикальные записи называются «столбцами». Если в матрице r строк и c столбцов, то порядок матрицы определяется как
Примеры:
// Матрица 3 x 4 1 2 3 4 М = 4 5 6 7 6 7 8 9 // Матрица 2 x 3 в Python А = ([2, 5, 7], [ 4, 7, 9 ] ) // Матрица 3 x 4 в Python, где элементы представляют собой числа с плавающей запятой В = ([1,0, 3,5, 5,4, 7,9], [9,0, 2,5, 4,2, 3,6], [ 1.5, 3.2, 1.6, 6.5 ] )
В Python мы можем использовать матрицу пользовательского ввода по-разному. Некоторые из методов для матрицы пользовательского ввода в Python показаны ниже:
Код № 1:
|
Выход:
Введите число ROW: 2: 2 Введите количество столбцов: 3 Введите записи построчно: 1 2 3 4 5 6 1 2 3 4 5 6
Один вкладыш:
|
Код № 2: Использование функции map()
и Numpy
.
В Python существует популярная библиотека под названием NumPy . Эта библиотека является фундаментальной библиотекой для любых научных вычислений. Она также используется для многомерных массивов, и поскольку мы знаем, что матрица представляет собой прямоугольный массив, мы будем использовать эту библиотеку для матрицы пользовательского ввода.
|
Вывод:
Введите количество строк:2 Введите количество столбцов: 2 Введите записи в одну строку, разделенные пробелом: 1 2 3 1 [[1 2] [3 1]]
Как получить ввод матрицы от пользователя в Python
следующий → ← предыдущая В этом руководстве мы обсудим способы получения ввода матрицы от пользователя в Python. Информация от клиента может быть получена двумя способами. Давайте посмотрим на два из них. МатрицаТермин «матрица» относится к прямоугольному распределению данных и, возможно, чисел. Другими словами, это прямоугольный/квадратный массив данных или чисел. В матрице горизонтальные элементы называются «строками», а вертикальные элементы — «столбцами». Порядок матрицы определяется как "r x c", если она имеет "r" строк и "c" столбцов. Каждая запись в матрице может быть целым числом, значением с плавающей запятой или даже комплексным числом. Пример: // матрица 5 х 6 ([1, 7, 3, 6, 1, 3], М = [4, 4, 7, 7, 3, 1], [6, 3, 8, 8, 5, 2], [4, 3, 2, 7, 6, 7], [3, 5, 7, 3, 5, 7]) // Матрица 3 x 4 в Python, в которой элементы матрицы имеют тип данных float В = ([2,0, 4,5, 3,4, 7,7], [9.4, 2.7, 2.2, 8.6], Мы можем принимать матрицу пользовательского ввода в Python различными способами. Ниже приведены некоторые из методов матрицы пользовательского ввода Python: Метод - 1Мы можем использовать «цикл for» внутри цикла for, чтобы упорядочить строки и столбцы матрицы размера, заданного пользователем. Ввод # Пример кода для ввода матрицы пользователем Rows = int(input("Укажите количество строк:")) Столбцы = int(input("Укажите количество столбцов:")) # Инициализация матрицы пример_матрица = [] print("Пожалуйста, указывайте записи построчно:") # Для пользовательского ввода for _ in range(Rows): # Этот цикл for упорядочивает строки р = [] for __ in range(Columns): # Этот цикл for упорядочивает столбцы r. append (int (ввод ())) example_matrix.append(r) # Печать матрицы, заданной пользователем для _ в диапазоне (строки): для __ в диапазоне (столбцы): печать (пример_матрицы [_] [__], конец = " ") Распечатать() Вывод: Дайте количество строк: 2 Укажите количество столбцов: 3 Пожалуйста, давайте записи по строкам: 3 5 2 7 4 6 3 5 2 7 4 6 Чтобы написать два цикла for в строке: Ввод # однострочный код для получения записей из строк и столбцов Rows = int(input("Укажите количество строк:")) Столбцы = int(input("Укажите количество столбцов:")) matrixx = [[int(input()) для c в диапазоне (столбцы)] для r в диапазоне (строки)] печать (матрицаx) Вывод: Дайте количество строк: 2 Укажите количество столбцов: 3 4 2 6 3 6 3 [[4, 2, 6], [3, 6, 3]] Метод - 2Используются Numpy и функция map(). NumPy, известный пакет Python, является одним из наиболее широко используемых. Эта библиотека необходима для любого научного вычислительного проекта. Это также полезно для многомерных массивов, а поскольку матрица действительно является прямоугольным массивом, мы будем использовать ее для пользовательского ввода. Ввод # Пример кода для ввода матрицы пользователем импортировать numpy как np Rows = int(input("Укажите количество строк:")) Столбцы = int(input("Укажите количество столбцов:")) print("Пожалуйста, запишите элементы матрицы в одну строку и разделите их пробелом:") # Пользователь будет вводить записи в одну строку элементы = список (карта (int, input (). Разделить ())) # Печать матрицы, заданной пользователем matrixx = np.array(элементы).reshape(строки, столбцы) печать (матрицаx) Вывод: Дайте количество строк: 2 Укажите количество столбцов: 3 Пожалуйста, запишите элементы матрицы в одну строку через пробел: 3 4 5 3 7 5 [[3 4 5] [3 7 5]] Метод - 3Использование значений, разделенных пробелами, по одной строке за раз. |