Try compact list comprehension:
[f'{v} {i}' for i, v in enumerate(example_lst)]
Explanation:
This creates a list where each of the elements are determined by the for loop within.
In this loop, i
is the index of the current element that the loop on and v
is the value of that element.
for i, v in enumerate(example_lst)
This then joins the value and index together with
f'{v} {i}'
This is called an f-string (formatted string).
While this might look confusing, it is actually quite simple.
F-strings provide a way to embed expressions inside string literals, using a minimal syntax. source
To make an f-string all that is needed is to place an f before the string. Then whatever is within curly braces is evaluated as python code.
So,
f'{v} {i}'
simply returns v + " " + i
which is "dog 0", "cat 1" or "plant 2", depending on the position the loop is at.
Thus, you get your result is as desired.
['dog 0', 'cat 1', 'plant 2']