Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #108023
| From | Peter Otten <__peter__@web.de> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Best way to clean up list items? |
| Date | 2016-05-02 19:30 +0200 |
| Organization | None |
| Message-ID | <mailman.326.1462210254.32212.python-list@python.org> (permalink) |
| References | <ng7v9d$ld8$1@dont-email.me> <ng82s2$9rg$1@ger.gmane.org> |
DFS wrote:
> Have: list1 = ['\r\n Item 1 ',' Item 2 ','\r\n ']
> Want: list1 = ['Item 1','Item 2']
>
>
> I wrote this, which works fine, but maybe it can be tidier?
>
> 1. list2 = [t.replace("\r\n", "") for t in list1] #remove \r\n
> 2. list3 = [t.strip(' ') for t in list2] #trim whitespace
> 3. list1 = filter(None, list3) #remove empty items
>
>
> After each step:
>
> 1. list2 = [' Item 1 ',' Item 2 ',' '] #remove \r\n
> 2. list3 = ['Item 1','Item 2',''] #trim whitespace
> 3. list1 = ['Item 1','Item 2'] #remove empty items
>
>
> Thanks!
s.strip() strips all whitespace, so you can combine steps 1 and 2:
>>> items = ['\r\n Item 1 ',' Item 2 ','\r\n ']
>>> stripped = (s.strip() for s in items)
The (...) instead of [...] denote a generator expression, so the iteration
has not started yet. The final step uses a list comprehension instead of
filter():
>>> [s for s in stripped if s]
['Item 1', 'Item 2']
That way the same code works with both Python 2 and Python 3. Note that you
can iterate over the generator expression only once; if you try it again
you'll end empty-handed:
>>> [s for s in stripped if s]
[]
If you want to do it in one step here are two options that both involve some
duplicate work:
>>> [s.strip() for s in items if s and not s.isspace()]
['Item 1', 'Item 2']
>>> [s.strip() for s in items if s.strip()]
['Item 1', 'Item 2']
Back to comp.lang.python | Previous | Next — Previous in thread | Find similar | Unroll thread
Best way to clean up list items? DFS <nospam@dfs.com> - 2016-05-02 12:33 -0400
Re: Best way to clean up list items? Jussi Piitulainen <jussi.piitulainen@helsinki.fi> - 2016-05-02 19:57 +0300
Re: Best way to clean up list items? justin walters <walters.justin01@gmail.com> - 2016-05-02 10:10 -0700
Re: Best way to clean up list items? DFS <nospam@dfs.com> - 2016-05-02 14:06 -0400
Re: Best way to clean up list items? Jussi Piitulainen <jussi.piitulainen@helsinki.fi> - 2016-05-02 21:27 +0300
Re: Best way to clean up list items? DFS <nospam@dfs.com> - 2016-05-02 15:04 -0400
Re: Best way to clean up list items? Stephen Hansen <me+python@ixokai.io> - 2016-05-02 10:25 -0700
Re: Best way to clean up list items? DFS <nospam@dfs.com> - 2016-05-02 14:09 -0400
Re: Best way to clean up list items? Stephen Hansen <me+python@ixokai.io> - 2016-05-02 11:23 -0700
Re: Best way to clean up list items? Peter Otten <__peter__@web.de> - 2016-05-02 19:30 +0200
csiph-web