Работа со списком, как имея строку преобразовать в список а потом обратно?

добрый день!

есть небольшой вопрос вот есть например (1+2)*3+5 - это строка

string = []
for x in strin:
     string.append(x)

тут он все переделает вроде как надо, но если будет такая запись (10+20)*3+5
то получится что каждое число и знак он представляет в списке как отдельный. string = [1,0,+,2,0 итд ]

вот как построить условие что бы если есть рядом число они записывались как целое
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
nightvich
@nightvich
ITman
Вопрос решается в одно действие, господа велосипедостроители.

import re

a = "(10+20)*3+5"

print re.findall('(\d+|\D)', a)

Вот решение более универсальное, позволяет избавиться от пробелов и воспринимает float.
import re

a = "(10,00 +2.0    )*3+5"

print re.findall('(\d+[,\.]?\d+|\S)', a)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
LazyTalent
@LazyTalent
Data Engineer, Freelancer
я бы сделал как-то так:
import re

string = '(10+20)*3+5 '
strings = re.split('\-|\+|\*|\/', string)
Ответ написан
@abcd0x00
>>> import re
>>> 
>>> s = '( 10 + 20 ) * 3 + 5'
>>> 
>>> re.findall(r'\d+|[+\-*/()]', s)
['(', '10', '+', '20', ')', '*', '3', '+', '5']
>>>
Ответ написан
Комментировать
oshikuru
@oshikuru
Python-разработчик, не брезгую js / html / css
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы