pythonstringiteration

Iterating each character in a string using Python


How can I iterate over a string in Python (get each character from the string, one at a time, each time through a loop)?


Solution

  • As Johannes pointed out,

    for c in "string":
        #do something with c
    

    You can iterate pretty much anything in python using the for loop construct,

    for example, open("file.txt") returns a file object (and opens the file), iterating over it iterates over lines in that file

    with open(filename) as f:
        for line in f:
            # do something with line
    

    If that seems like magic, well it kinda is, but the idea behind it is really simple.

    There's a simple iterator protocol that can be applied to any kind of object to make the for loop work on it.

    Simply implement an iterator that defines a next() method, and implement an __iter__ method on a class to make it iterable. (the __iter__ of course, should return an iterator object, that is, an object that defines next())

    See official documentation