I think you mean
a_list = [s.strip() for s in a_list]
Using a generator expression may be a better approach, like this:
stripped_list = (s.strip() for s in a_list)
offers the benefit of lazy evaluation, so the strip
only runs when the given element, stripped, is needed.
If you need references to the list to remain intact outside the current scope, you might want to use list slice syntax.:
a_list[:] = [s.strip() for s in a_list]
For commenters interested in the speed of various approaches, it looks as if in CPython the generator-to-slice approach is the least efficient:
>>> from timeit import timeit as t
>>> t("""a[:]=(s.strip() for s in a)""", """a=[" %d " % s for s in range(10)]""")
4.35184121131897
>>> t("""a[:]=[s.strip() for s in a]""", """a=[" %d " % s for s in range(10)]""")
2.9129951000213623
>>> t("""a=[s.strip() for s in a]""", """a=[" %d " % s for s in range(10)]""")
2.47947096824646