FeniksD
Мастер
(1434)
5 дней назад
N = 6
operators = ['+', '*', '-', '**', '/', '/']
priority = {'**': 3, '*': 2, '/': 2, '//': 2, '%': 2, '+': 1, '-': 1}
operations_with_priority = [] # Создаем пустой список для хранения операций и их приоритетов
for i in range(1, N + 1): # Перебираем числа от 1 до N
operator = operators[i - 1] # Получаем оператор из списка operators
operator_priority = priority[operator] # Получаем приоритет оператора из словаря priority
operations_with_priority.append((i, operator_priority)) # Добавляем кортеж (номер операции, приоритет) в список
def get_priority(operation): # Определяем функцию, которая возвращает приоритет из кортежа
return operation[1]
operations_with_priority.sort(key=get_priority, reverse=True) # Сортируем список по приоритету в обратном порядке
result = [] # Создаем пустой список для хранения результата
for operation in operations_with_priority: # Перебираем отсортированные операции
result.append(operation[0]) # Добавляем порядковый номер операции в список result
print(result) # Вывод: [4, 2, 5, 6, 1, 3]
operations_with_priority.sort(key=lambda x: x[1], reverse=True)
result = [x[0] for x in operations_with_priority]
кто то это написал, а меня заставили переписать чтобы было понятно новичку, а я сам не очень разбираюсь в питоне.
дл примера:
N = 6
operators = ['+', '*', '-', '**', '/', '/']
priority = {'**': 3, '*': 2, '/': 2, '//': 2, '%': 2, '+': 1, '-': 1}