How do I do this in Python 3 (string.join())?

Chris Green cl at isbd.net
Wed Aug 26 10:09:16 EDT 2020


2QdxY4RzWzUUiLuE at potatochowder.com wrote:
> On 2020-08-26 at 14:22:10 +0100,
> Chris Green <cl at isbd.net> wrote:
> 
> > I have the following line in Python 2:-
> > 
> > msgstr = string.join(popmsg[1], "\n") # popmsg[1] is a list containing 
> the lines of the message 
> > 
> > ... so I changed it to:-
> > 
> >     s = "\n"
> >     msgstr = s.join(popmsg[1])      # popmsg[1] is a list containing the lines of the message
> > 
> > However this still doesn't work because popmsg[1] isn't a list of
> > strings, I get the error:-
> > 
> >     TypeError: sequence item 0: expected str instance, bytes found
> > 
> > So how do I do this?  I can see clumsy ways by a loop working through
> > the list in popmsg[1] but surely there must be a way that's as neat
> > and elegant as the Python 2 way was?
> 
> Join bytes objects with a byte object:
> 
>     b"\n".join(popmsg[1])

Aaahhh!  Thank you (and the other reply).

-- 
Chris Green
·


More information about the Python-list mailing list