У меня есть задача, требующая операции над каждым элементом списка, причем результат операции зависит от других элементов в списке.
Например, мне может понадобиться конкатенация списка строк, условных на них, начиная с определенного символа:
Этот код решает проблему:
x = ['*a', 'b', 'c', '*d', 'e', '*f', '*g']
concat = []
for element in x:
if element.startswith('*'):
concat.append(element)
else:
concat[len(concat) - 1] += element
в результате:
concat
Out[16]: ['*abc', '*de', '*f', '*g']
Но это кажется ужасно не-питоническим. Как работать с элементами a list
, когда результат операции зависит от предыдущих результатов?