Python – How to split a string into a list

listpythonsplitstring

If I have this string:

2+24*48/32

what is the most efficient approach for creating this list:

['2', '+', '24', '*', '48', '/', '32']

Best Solution

It just so happens that the tokens you want split are already Python tokens, so you can use the built-in tokenize module. It's almost a one-liner; this program:

from io import StringIO
from tokenize import generate_tokens

STRING = 1
print(
    list(
        token[STRING]
    for token in generate_tokens(StringIO("2+24*48/32").readline)
    if token[STRING]
    )
)

produces this output:

['2', '+', '24', '*', '48', '/', '32']