Стратегии решения
Практикум смешивает несколько тем. Сначала определите основной инструмент: comprehension, zip(), set, индексы матрицы или deque.
Если задача требует уникальности без порядка — используйте set. Если уникальность нужна в порядке появления — храните set для проверки и список для результата.
numbers = [4, 1, 7, 6, 2, 6, 8, 1, 5, 4]
seen = set()
unique_numbers = []
for number in numbers:
if number not in seen:
seen.add(number)
unique_numbers.append(number)
print(unique_numbers)Матрицы и индексы
Главная диагональ квадратной матрицы — элементы matrix[i][i]. Побочная диагональ — matrix[i][n - 1 - i].
Для сравнения двух диагоналей используйте all() с range(n).
matrix1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix2 = [[1, 0, 3], [0, 5, 0], [7, 0, 9]]
n = len(matrix1)
main_equal = all(matrix1[i][i] == matrix2[i][i] for i in range(n))
secondary_equal = all(matrix1[i][n - 1 - i] == matrix2[i][n - 1 - i] for i in range(n))
print(main_equal, secondary_equal)Множества в практических задачах
Множества дают короткое решение для уникальных слов, одинаковых значений и сундуков с драгоценностями.
Для печати учебного результата лучше сортировать множество или явно объяснять, что порядок не гарантируется.
text = "Apple orange apple banana Orange"
unique_words = {word.lower() for word in text.split()}
print("Количество уникальных:", len(unique_words))