Whitespace test after string.split

Bengt Richter bokr at oz.net
Sun Nov 27 06:18:11 CET 2005


On Sat, 26 Nov 2005 16:15:17 +0100, Peter Otten <__peter__ at web.de> wrote:

>David Pratt wrote:
>
>> Hi.  I am splitting a string on a non whitespace character. One or more
>> whitespace characters can be returned as items in the list. I do not
>> want the items in the list that are only whitespace (can be one or more
>> characters of whitespace) and plan to use string.strip on those items
>> that are not only whitespace (to remove any whitespace from front or
>> back of items).
>> 
>> What kind of efficient test can I use to obtain only list items
>> returned from the split that I am interested in, ignoring any list
>> items that would only be comprised of one or more characters of
>> whitespace (since whitespace can mean one or more spaces, tabs, and
>> other characters)
>
>>>> s = "alpha, \t\n, gamma, delta,"
>>>> s.split(",")
>['alpha', ' \t\n', ' gamma', ' delta', '']
>>>> [t for t in s.split(",") if not t.isspace()]
>['alpha', ' gamma', ' delta', '']
>>>> [t for t in s.split(",") if t and not t.isspace()]
>['alpha', ' gamma', ' delta']
>>>> [t.strip() for t in s.split(",") if t and not t.isspace()]
>['alpha', 'gamma', 'delta']
>
>There you are.
Alternatively, possibly

 >>> [t for t in (t.strip() for t in s.split(",")) if t]
 ['alpha', 'gamma', 'delta']

>
>> As a second question, I am seeing string split as deprecated in 2.4.2
>> manual.  What is planned in future to split (strings or unicode)?
>
>Just use the corresponding methods, e. g. s.strip() instead of
>string.strip(s) etc.
>
>Peter
>

Regards,
Bengt Richter



More information about the Python-list mailing list