On Wed, Sep 8, 2010 at 11:50 AM, Roelof Wobben <rwob...@hotmail.com> wrote:

>
>
> > Subject: Re: [Tutor] sort problem
> > From: evert....@gmail.com
> > Date: Wed, 8 Sep 2010 17:26:58 +0200
> > CC: tutor@python.org
> > To: rwob...@hotmail.com
>
> >
> > > I have this :
> > >
> > > def sort_sequence(seq):
> > > """
> > > >>> sort_sequence([3, 4, 6, 7, 8, 2])
> > > [2, 3, 4, 6, 7, 8]
> > > >>> sort_sequence((3, 4, 6, 7, 8, 2))
> > > (2, 3, 4, 6, 7, 8)
> > > >>> sort_sequence("nothappy")
> > > 'ahnoppty'
> > > """
> > > if type(seq) == type([]):
> > > seq.sort()
> > > elif type(seq)== type(()):
> > > seq = tuple(sorted(seq))
> > > else:
> > > seq2 = list(seq)
> > > seq2.sort()
> > > print seq2
> > > seq.join(seq2)
> > > return seq
> > >
> > > The problem is that if I want to sort the characters in a string, the
> list exist of the sorted characters but as soon as I convert them to a
> string I get the old string.
> >
> > Carefully read the documentation for str.join:
> http://docs.python.org/library/stdtypes.html#str.join
> >
> > How does it work, what does it return, etc. Then fix the corresponding
> line in your code.
> > As a hint: str.join does work quite different than list.sort; I assume
> you're confusing their syntaxes.
> >
> > Good luck,
> >
> > Evert
> >
>
> str.join(*iterable*)ΒΆ <#12af20c2e150d2eb_str.join>
> How it works.
> It puts all the elements of iterable into one string named str.
>
> So it returns a string.
>
> Str is here seq  and the iterable is the list made by list.sort so seq2
>
> So I don't see the error in that line.
>
>
> Roelof
>
>

The error is that you misunderstand the usage of str.join.  It doesn't do it
in place, i.e. it doesn't change the actual string, so you have to have a
variable to capture the response.

The biggest thing, though, is that in str.join, str is not the string to
store the joined iterator in, it's the separator for the string.  so, in
your case, where you have

seq.join(seq2)

You really want

seq = "".join(seq2)

where "" is the separator to join seq2 on (an empty string in this case)

HTH.

-- 
Greg Bair
gregb...@gmail.com
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to