или как из списка объектов s = ['a','b','a','a','b']
сделать такой список - t = ['a','b', '(','a', '+', 'a', ')', 'b']
пояснение: есть список из объектов типа "a", и типа "b"
для простоты я представил их в виде строк - s = ['a','b','a','a','b']
вопрос: как составить список t (если объект типа "a" встречается более одного раза вподряд то ряд этих объектов надо заключить в скобки, а между ними поставить '+'
или как из списка объектов s = ['a','b','a','a','b']
сделать такой список - t = ['a','b', '(','a', '+', 'a', ')', 'b']
пояснение: есть список из объектов типа "a", и типа "b"
для простоты я представил их в виде строк - s = ['a','b','a','a','b']
вопрос: как составить список t (если объект типа "a" встречается более одного раза вподряд то ряд этих объектов надо заключить в скобки, а между ними поставить '+'
s = ['b','a','b','a','a','a','b','b','b','a','b','a','a','b','a']
def make_list(lst):
if len(lst) <= 1:
return lst
result = ['(']
for i in lst:
result.append(i)
result.append('+')
result[len(result)-1] = ')'
return result
res = []
tmp = []
for i in s:
if (i == 'a'):
tmp.append(i)
else:
res += make_list(tmp)
res.append(i)
tmp = []
print(res)
Без бутылки тут человек не разберётся. Почему и рекомендую поискать другое решение для вашей задачи, оно точно должно быть
Даниил, чем лично для меня хорошо это решение так это то что в нём легко разобраться и переделать под свои нужды, что я и сделал - если несколько объктов "a"
в конце списка то они не попадали под условие