Вот одна строчка в строках ответа Дукса, но с использованием выражения генератора и объединением всех последовательностей символов в конце, а не на каждой итерации:
from collections import Counter
s = 'I need a drink, coconut'
print(''.join(c * n[c] for w in s.split() for n in (Counter(w + ' '),) for c in w + ' '))
# Output: I neeeed a drink, ccooccoonut
Обратите внимание, что второе 'для'повторяется только один раз, чтобы присвоить объекту Counter значение n
;этот маленький трюк гарантирует, что новый объект Counter создается только для каждого слова w
, а не для каждого символа c
.