Question on lists
Tony Clarke
a.clarke11 at ntlworld.com
Sat Jul 31 08:59:03 EDT 2004
Peter Otten <__peter__ at web.de> wrote in message news:<cefd6i$q21$00$1 at news.t-online.com>...
> Tony Clarke wrote:
>
> > A simple list comprehension approach:
> >
> > def condense(m):
> > print [m[k] for k in range(len(m)) if m[k]!=m[k-1]]
> >
> >Snip
>
> That does not work for len(m) == 1 and for m[0] == m[-1]:
>
> >>> def condense(m):
> ... print [m[k] for k in range(len(m)) if m[k]!=m[k-1]]
> ...
> >>> condense([1,2,1]) # expected: [1,2,1]
> [2, 1]
> >>> condense([42]) # expected: [42]
> []
>
> Peter
Oops! more testing was indicated!
How's this:
def condense(m):
print m, 'condensed is',
print [m[0]]+[m[k] for k in range(1,len(m)) if m[k]!=m[k-1]]
l=[1,2,2,4,3,5,5,6]
condense(l)
n=[1,2,1]
m=[42]
o=[0,0,1,2,3,3,0,0]
condense (n)
condense (m)
condense(o)
>>>
[1, 2, 2, 4, 3, 5, 5, 6] condensed is [1, 2, 4, 3, 5, 6]
[1, 2, 1] condensed is [1, 2, 1]
[42] condensed is [42]
[0, 0, 1, 2, 3, 3, 0, 0] condensed is [0, 1, 2, 3, 0]
>>>
Cheers
Tony Clarke
More information about the Python-list
mailing list