Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Распишите этот код, чтобы он был понятен даже новичку

Artur Tipikin Ученик (176), открыт 5 дней назад
operations_with_priority = [(i, priority[operators[i-1]]) for i in range(1, N+1)]
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}
1 ответ
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]
Artur TipikinУченик (176) 5 дней назад
оохх, спасибо!
Artur Tipikin, ага, ещё скажи, что этот нейробред понятнее, чем исходник
Artur TipikinУченик (176) 5 дней назад
ну лично мне понятнее
Похожие вопросы