for example I have the following list:
contents= [\"i have two pens\",\"prices = 5$\",\"made in ____ and ____\"]
I want to split them such a wa
This is another choice, May be also complicated.
from itertools import izip_longest
array = [phrase.split() for phrase in contents]
l = izip_longest(*array, fillvalue=u'')
result = [list(t) for t in zip(*l)]
                                                                        A quick demo to expand on my comment, using izip_longest from itertools:
>>> from itertools import izip_longest
>>> contents = ["i have two pens",
                "prices = 5$",
                "made in ____ and ____"]
>>> array = [phrase.split() for phrase in contents]
>>> for t in izip_longest(*array, fillvalue=" "):
        print t
('i', 'prices', 'made')
('have', '=', 'in')
('two', '5$', '____')
('pens', ' ', 'and')
(' ', ' ', '____')
You don't need to modify array, this pads for you as you iterate over the sublists. 
You would need to check which is the longest array and then pad the other ones, like this:
array = [phrase.split() for phrase in contents]
x = max(len(i) for i in array)
result = [i + [''] * (x - len(i)) for i in array]
Complicated but gives you the result you're looking for.