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. 1
      2
      3
      4
      5
      
      def printMatrix ( matrix ): 
         for i in range ( len(matrix) ): 
            for j in range ( len(matrix[i]) ): 
                print ( "{:4d}".
      format(matrix[i][j]), end = "" ) print ()

      В примере i – это номер строки, а j – номер столбца;
      len(matrix) – число строк в матрице.

    3. способ:
    4. 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 дня с трех метеостанций, расположенных в разных регионах страны:

    Номер станции
    1-й день
    2-й день3-й день4-й день
    1-8-14-19-18
    225282620
    311182025

    Т. е. запись показаний в двумерном массиве выглядела бы так:

    t[0][0]=-8t[0][1]=-14t[0][2]=-19t[0][3]=-18
    t[1][0]=25t[1][1]=28t[1][2]=26t[1][3]=20
    t[2][0]=11t[2][1]=18t[2][2]=20t[2][3]=25
    1. Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.
    2. Распечатать показания термометров всех метеостанций за 2-й день.
    3. Определить среднюю температуру на 3-й метеостанции.
    4. Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.

    Задание Python 8_1:
    Написать программу поиска минимального и максимального элементов матрицы и их индексов.

    Задание Python 8_2:
    Написать программу, выводящую на экран строку матрицы, сумма элементов которой максимальна.

  • Для обработки элементов квадратной матрицы (размером N x N):
  • Для элементов главной диагонали достаточно использовать один цикл:
  • for i in range(N): 
       # работаем с matrix[i][i]
  • Для элементов побочной диагонали:
  • for i in range(N): 
       # работаем с matrix[i][N-1-i]

    Пример:Переставить 2-й и 4-й столбцы матрицы. Использовать два способа.

    ✍ Решение: 

    1. for i in range(N): 
        c = A[i][2] 
        A[i][2] = A[i][4] 
        A[i][4] = c
    2. for i in range(N): 
        A[i][2], A[i][4] = A[i][4], A[i][2]

    Задание Python 8_3:
    Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу размерностью N. Определить:

  • минимальный элемент, лежащий ниже побочной диагонали;
  • произведение ненулевых элементов последней строки.
  • Ввод матрицы от пользователя в Python

    Матрица — это не что иное, как прямоугольное расположение данных или чисел. Другими словами, это прямоугольный массив данных или чисел. Горизонтальные записи в матрице называются «строками», а вертикальные записи называются «столбцами». Если в матрице r строк и c столбцов, то порядок матрицы определяется как

    r x 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:

    R = INT ( ( ".

    C = INT ( Вход ( »Введите номер колонн:" )

    99

    99

    9

    9

    9005

    9

    = .

         a = []

         for j in range (C):     

              a.append( int ( input ()))

         matrix.append(a)

       

    for i in Диапазон (R):

    для J в Диапазон (C):

    Print (MATRIX [I] (Matrix [I] . = "" )

    Печать ()

    Выход:

     Введите число ROW: 2: 2 
    Введите количество столбцов: 3
    Введите записи построчно:
    1
    2
    3
    4
    5
    6
    
    1 2 3
    4 5 6
     

    Один вкладыш:

    матовый = [[ int ( input ()) for x in range (C)] for y in range (R)]


    Код № 2: Использование функции map() и Numpy .

    В Python существует популярная библиотека под названием NumPy . Эта библиотека является фундаментальной библиотекой для любых научных вычислений. Она также используется для многомерных массивов, и поскольку мы знаем, что матрица представляет собой прямоугольный массив, мы будем использовать эту библиотеку для матрицы пользовательского ввода.

    Импорт Numpy As NP

    R = INT ( INT ( ( (. . )

    C = int ( input ( "Enter the number of columns:" ))

       

     

    print ( "Enter the entries in a single line (separated by space): " )

       

    entries = list ( map ( INT , Вход () . split ())

    Матрица = NP.Array (intres). Реш.

    печать (матрица)

    Вывод:

     Введите количество строк: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

    Использование значений, разделенных пробелами, по одной строке за раз.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *