У меня есть список в Python, как [1, '+', 32, '+', 56, '+', 34] . Я пытаюсь выполнить математическую операцию и получить окончательный результат в виде 123 .

Я взял ввод от пользователя и сделал int преобразование для числового значения и создал этот список, теперь я хочу дать окончательный результат.

Мне нужна идея о том, как я могу продолжить это.

Любая помощь будет заметна

1
anand2308 28 Авг 2017 в 16:15

3 ответа

Лучший ответ

Быстрый способ:

eval(' '.join(str(x) for x in  [1, '+', 32, '+', 56, '+', 34]))
4
user2021091 28 Авг 2017 в 13:20

Я считаю eval неким уродливым решением; Я бы рекомендовал подходить к этому так:

from operator import add, sub

def process(instructions):
    result = 0
    operations = {'+': add, '-': sub}
    operation = add 
    for item in instructions:
        if item in operations:
            operation = operations[item]
        else:
            number = float(item)
            result = operation(result, number)
    return result

your_instructions = [1, '+', 32, '+', 56, '+', 34]
process(your_instructions)
0
Ben Quigley 28 Авг 2017 в 13:27
a=[1, '+', 32, '+', 56, '+', 34]
sum([elem for elem in a if elem!='+'])

Как насчет удаления знаков плюс и использования sum

0
whackamadoodle3000 28 Авг 2017 в 23:49