И в случае, если вам действительно хочется сделать это в одну строку:
РЕДАКТИРОВАТЬ - использование .format
или строки форматирования делает это короче / более разборчивым, как отмечено в комментариях
items = ['a', 'a', 'b', 'a', 'c', 'c', 'd']
print("".join("{}{}".format(e,i) for i,e in enumerate(items)))
Для Python 3.7 вы можете сделать
items = ['a', 'a', 'b', 'a', 'c', 'c', 'd']
print("".join(f"{e}{i}" for i, e in enumerate(items)))
ORIGINAL
items = ['a', 'a', 'b', 'a', 'c', 'c', 'd']
print("".join((str(e) for item_with_index in enumerate(items) for e in item_with_index[::-1])))
Обратите внимание, что необходимо изменить (item_with_index[::-1]
), потому что вы хотите, чтобы элементы печатались до индекса, но enumerate
дает кортежи с индексом первым.