The problem is that you're passing a string to print_list. When you iterate through a string, it splits it into single-character strings. So, essentially what you're doing is calling toon['a'], which doesn't work, because you have to use an integer to access an iterable by index.
Note also that both you and Batuhan are making a mistake in the way you're dealing with strings. Even once you fix the error above, you're still going to get another one immediately afterwards. In python, string doesn't allow item assignment, so you're going to have to create an entirely new string rather than reassigning a single character therein.
If you wanted, you could probably use a list comprehension to accomplish the same task in significantly less space. Here's an example:
def print_list(toon):
return ''.join([ch if ch != 'e' else '0' for ch in toon])
This creates a new string from toon where all incidences of 'e' have been replaced with '0', and all non-'e' characters are left as before.
Edit: I might have misunderstood your purpose. word.split() as the entirety of a statement doesn't do anything - split doesn't reassign, and you'd have to do word = word.split() if you wanted to word to equal a list of strings after that statement. But - is there a reason you're trying to split the string in the first place? And why are you assigning two separate words to a single variable called word? That doesn't make any sense, and makes it very difficult for us to tell what you're trying to accomplish.