Как проверить симметричность массива в Python? 🔄

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

def is_symmetric(arr):
    n = len(arr)
    for i in range(n):
        for j in range(n):
            if arr[i][j] != arr[j][i]:
                return False
    return True

arr = [[1, 2, 3],
       [2, 4, 5],
       [3, 5, 6]]

if is_symmetric(arr):
    print("Массив является симметричным")
else:
    print("Массив не является симметричным")

Детальный ответ

Как проверить симметричность массива в Python

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

1. Проверка симметричности с помощью циклов

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


def is_symmetric(arr):
    n = len(arr)
    for i in range(n//2):
        if arr[i] != arr[n-i-1]:
            return False
    return True

# Пример использования функции
arr1 = [1, 2, 3, 3, 2, 1]
arr2 = [1, 2, 3, 4, 5, 6]

if is_symmetric(arr1):
    print("Массив arr1 симметричен")
else:
    print("Массив arr1 не симметричен")

if is_symmetric(arr2):
    print("Массив arr2 симметричен")
else:
    print("Массив arr2 не симметричен")

В приведенном выше коде, функция is_symmetric() принимает массив arr в качестве аргумента и сравнивает элементы с помощью цикла for. Если элементы не совпадают, возвращается значение False, в противном случае - True.

2. Проверка симметричности с использованием срезов

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


def is_symmetric(arr):
    n = len(arr)
    first_half = arr[:n//2]
    second_half = arr[n//2:][::-1]
    return first_half == second_half

# Пример использования функции
arr1 = [1, 2, 3, 3, 2, 1]
arr2 = [1, 2, 3, 4, 5, 6]

if is_symmetric(arr1):
    print("Массив arr1 симметричен")
else:
    print("Массив arr1 не симметричен")

if is_symmetric(arr2):
    print("Массив arr2 симметричен")
else:
    print("Массив arr2 не симметричен")

В приведенном коде мы используем срезы для разделения массива на две половины. Затем мы используем обратный срез ([::-1]), чтобы развернуть вторую половину массива. Затем мы сравниваем первую половину с развернутой второй половиной с помощью оператора сравнения ==. Если они равны, значит массив симметричен.

3. Нахождение симметрии во вложенных массивах

Если у вас есть вложенный массив (массив массивов), то вы можете использовать подходы, описанные выше, для проверки симметричности каждого вложенного массива.


def is_symmetric_nested(arr):
    for subarray in arr:
        if not is_symmetric(subarray):
            return False
    return True

# Пример использования функции
arr = [[1, 2, 3, 3, 2, 1], [1, 2, 3, 4, 5, 6]]

if is_symmetric_nested(arr):
    print("Все вложенные массивы симметричны")
else:
    print("Не все вложенные массивы симметричны")

В этом коде мы используем функцию is_symmetric_nested(), которая перебирает все вложенные массивы и проверяет их симметричность с помощью функции is_symmetric(). Если все вложенные массивы симметричны, возвращается значение True, в противном случае - False.

В заключении

В этой статье мы рассмотрели три разных подхода к проверке симметричности массива в Python. Вы можете выбрать любой из этих подходов в зависимости от ваших потребностей. Циклы и срезы позволяют вам проверять симметричность одномерных массивов, а также вложенных массивов. Убедитесь, что вы понимаете эти подходы, чтобы правильно использовать их в своем коде.

Видео по теме

Решение задачи "Симметричная ли матрица"

4.5 Симметричная матрица. "Поколение Python": курс для продвинутых. Курс Stepik

5.1 Симметричная матрица. "Поколение Python": курс для продвинутых. Курс Stepik

Похожие статьи:

🔧 Как поменять директорию в консоли Python: простой способ

🔍 Как научиться Python: полное руководство для начинающих

Как получить целое число в Python при делении? 🧮🐍

Как проверить симметричность массива в Python? 🔄

🔢 Как вывести рандомное число в питоне? 🐍 Простой гайд для начинающих!

🔒Как поставить в питоне русский язык без сложностей

🔍 Как найти нод трех чисел в Python? 🧮