The split() method splits a string based on the given substring and returns a list. By default, whitespace is used for splitting and empty elements are discarded.

>>> greeting = '  \t\r\n have    a  nice \r\v\t day  \f\v\r\t\n '  >>> greeting.split() ['have', 'a', 'nice', 'day'] 

You can split the input based on a specific string literal by passing it as an argument. Here are some examples:

>>> creatures = 'dragon][unicorn][centaur' >>> creatures.split('][') ['dragon', 'unicorn', 'centaur']  # empty elements will be preserved in this case >>> ':car::jeep::'.split(':') ['', 'car', '', 'jeep', '', ''] 

The maxsplit argument allows you to restrict the number of times the input string should be split. Use rsplit() if you want to split from right to left.

# split once >>> 'apple-grape-mango-fig'.split('-', maxsplit=1) ['apple', 'grape-mango-fig']  # match the rightmost occurrence >>> 'apple-grape-mango-fig'.rsplit('-', maxsplit=1) ['apple-grape-mango', 'fig'] >>> 'apple-grape-mango-fig'.rsplit('-', maxsplit=2) ['apple-grape', 'mango', 'fig'] 

The partition() method will give a tuple of three elements — portion before the leftmost match, the separator itself and the portion after the split. You can use rpartition() to match the rightmost occurrence of the separator.

>>> marks = 'maths:85' >>> marks.partition(':') ('maths', ':', '85')  # last two elements will be empty if there is no match >>> marks.partition('=') ('maths:85', '', '')  # match the rightmost occurrence >>> creatures = 'dragon][unicorn][centaur' >>> creatures.rpartition('][') ('dragon][unicorn', '][', 'centaur') 

info See my Understanding Python re(gex)? ebook to learn about string splitting with regular expressions.

Video demo:


info See also my 100 Page Python Intro ebook.