Найти ответ на выражение в списке - PullRequest
0 голосов
/ 29 апреля 2018

Какой самый питонный способ найти ответ на выражение в списке? (оценивается слева направо и с точки зрения приоритета оператора)

an_expression = [1, '+', 6, '//', 2]
answer = # 4

another_expression = [2, '-', 2, '*', 3, '+', 1]
answer_2 = # -3

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете использовать eval() после того, как убедитесь, что выражение безопасно оценить, например ::

>>> operators = {'+', '-', '*', '/', '//'}
>>> expr = [1, '+', 6, '//', 2]
>>> if all(isinstance(x, int) or x in operators for x in expr):
...     print(eval(''.join(map(str, expr))))
... 
4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...