Блог / Статьи

Полезная информация для вашего хостинга

Методы создания и обработки двумерных массивов в Python

Методы создания и обработки двумерных массивов в Python

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

В Python такие таблицы можно организовать с помощью списков, где каждый элемент является другим списком. Вот пример создания таблицы размером 3x3, заполненной произвольными символами: 

```python
mas = [['й', 'ц', 'у'], ['к','е','н'], ['г', 'ш', 'щ']] 
# Выводим весь двумерный массив 
print(mas) 
# Выводим первый элемент первой строки 
print(mas[0][0])  # Результат: й 
# Выводим третий элемент третьей строки 
print(mas[2][2])  # Результат: щ 
```

Способы создания двумерных массивов

В Python существует несколько методов для создания двумерных массивов. Рассмотрим несколько вариантов.

1. Заполнение нулями с использованием цикла

Вот пример создания массива 3x3, полностью заполненного нулями: 

```python
a = 3           
mas = [0] * a 
for i in range(a): 
    mas[i] = [0] * a 
print(mas)  # Результат: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
```

2. Создание массива с добавлением списков

Во втором способе создается пустой список, в который добавляются новые списки: 

```python
a = 2
mas = [] 
for i in range(a): 
    mas.append([1] * a)
print(mas)  # Результат: [[1, 1], [1, 1]]
```

3. Использование генератора списков

Самый простой и быстрый способ — это использование генератора списков. Он позволяет создать массив с нужными размерами и значениями за одну строку:  

```python
a = 3
mas = [[2] * a for i in range(a)]
print(mas)  # Результат: [[2, 2, 2], [2, 2, 2], [2, 2, 2]]
```

Все эти методы полезны в зависимости от ситуации и могут помочь эффективно организовать данные в виде двумерного массива.

Способы ввода двумерных массивов в Python

Допустим, мы хотим ввести значения для двумерного массива после запуска программы. Чтобы это сделать, можно написать код, который считывает количество строк и построчно принимает значения для каждой строки. Вот пример: 

```python
a = int(input())  # Считываем количество строк
mas = [] 
for i in range(a): 
    mas.append(list(map(int, input().split())))  # Считываем каждую строку массива
print(mas)  # Выводим полученный массив
```

Пример выполнения программы:
1. Вводим количество строк (например, 3).
2. Вводим данные для каждой строки: 

   ```
   1 1 1
   1 1 1
   1 1 1
   ```

Результат будет следующим: `[[1, 1, 1], [1, 1, 1], [1, 1, 1]]`.

Альтернативный способ с генератором списков

Для упрощения можно воспользоваться генератором списков, что позволяет сократить код до одной строки:  

```python
mas = [list(map(int, input().split())) for i in range(int(input()))]
```

Пример работы такой же: вводим количество строк и затем каждую строку данных: 

```
3
1 1 1
1 1 1
1 1 1
```

Вывод: `[[1, 1, 1], [1, 1, 1], [1, 1, 1]]`.

Способы вывода двумерных массивов

Для вывода двумерного массива можно использовать два вложенных цикла: внешний цикл для обхода строк, а внутренний — для элементов внутри этих строк. Пример: 

```python
mas = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
for i in range(0, len(mas)):
    for i2 in range(0, len(mas[i])):
        print(mas[i][i2], end=' ')  # Выводим элементы одной строки в одну строку
    print()  # Переход на новую строку
```

 Вывод: 

```
1 1 1
1 1 1
1 1 1
```

 Другой способ, более компактный, использует обход элементов без указания индексов: 

```python
mas = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
for row in mas: 
    for elem in row: 
        print(elem, end=' ')
    print()
```

Результат тот же: 

```
1 1 1
1 1 1
1 1 1
``` 

Оба способа удобны в зависимости от задачи и предпочтений.

mass python2

Способ вывода двумерных массивов с помощью метода `join()`

Для более удобного и лаконичного вывода элементов двумерного массива можно использовать метод `join()`. Он позволяет объединить элементы списка в строку с нужным разделителем, например, пробелом: 

```python
mas = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
for i in mas: 
    print(' '.join(map(str, i)))
```
Вывод:
```
1 1 1
1 1 1
1 1 1
```

Вывод одной строки массива

Чтобы вывести определённую строку массива, можно использовать цикл и метод `join()`. Например, для вывода второй строки: 

```python
mas = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
string = 2
print(' '.join(map(str, mas[string-1])))
```
Результат:
```
2 2 2
```

Вывод определенного столбца массива

Если нужно вывести элементы одного столбца двумерного массива, можно воспользоваться таким подходом: 

```python
mas = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
column = 2
for i in mas:
    print(i[column-1], end=' ')
```
Вывод:
```
2 5 8
```

 

Сортировка строк двумерного массива

Предположим, у нас есть массив размером 4x4, и нам нужно отсортировать числа в каждой строке по порядку: 

```python
mas = [[2, 4, 7, 3], [4, 5, 6, 9], [1, 0, 4, 2], [7, 8, 4, 7]]
mas2 = [sorted(row) for row in mas]
print(mas2)
```
Вывод:
```
[[2, 3, 4, 7], [4, 5, 6, 9], [0, 1, 2, 4], [4, 7, 7, 8]]
```

Полная сортировка массива

Если нужно отсортировать все элементы массива по возрастанию, игнорируя их расположение в строках, можно использовать следующий алгоритм:

 

```python
mas = [[2, 4, 7, 3], [4, 5, 6, 9], [1, 0, 4, 2], [7, 8, 4, 7]]
mas2 = [elem for row in mas for elem in row]  # Преобразуем двумерный массив в одномерный
mas2.sort()  # Сортируем одномерный массив
for x in range(0, len(mas2), 4):  # Разбиваем обратно на строки по 4 элемента
    print(mas2[x:x+4])
```
Вывод:
```
[0, 1, 2, 2]
[3, 4, 4, 4]
[4, 5, 6, 7]
[7, 7, 8, 9]
```

 

Этот код позволяет сначала собрать все элементы в один список, отсортировать их и затем вывести по 4 элемента в строке, возвращая формат 4x4.

Итог

Мы рассмотрели основы работы с двумерными массивами в Python. Вы научились их создавать, вводить данные, выводить массивы различными способами, а также обрабатывать их, сортируя строки или все элементы массива. Надеюсь, что эта информация была полезной и поможет вам лучше разобраться с двумерными массивами в ваших проектах!

Работа с двумерными массивами в Python важна не только для разработки локальных приложений, но и для веб-проектов, которые развернуты на хостинге. Хостинг для Python позволяет выполнять сложные вычисления, обрабатывать большие объемы данных, включая массивы, и запускать различные серверные скрипты. Это особенно актуально для проектов, связанных с обработкой данных, машинным обучением или веб-приложениями, где производительность хостинга напрямую влияет на скорость обработки массивов и выполнения задач.