[Tutor] making a string

Tim Hanson tjhanson at yahoo.com
Sun May 26 05:49:09 CEST 2013


On Saturday, May 25, 2013 08:31:49 pm Martin A. Brown wrote:
> Greetings Tim,
> 
>  : I'm new to this, just getting through the first Mark Lutz book.
> 
> Python objects, either variables your ham below or the string 'spam'
> you entered manually have a specific type.  Each and every variable
> or object has a type.
> 
> I think you are trying to figure out how you started with a string
> that looked like 'spam' (and Python calls a <type 'str'>) and end up
> with something that looks like:
> 
>    ['s','p','a','m']
> 
> Well, I would encourage you to play with everything at the Python
> prompt.  You should be able to enter a tête-à-tête with Python as
> follows.  This is what I see when I type 'python' and get an
> interactive console:
> 
>   Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2
>   Type "help", "copyright", "credits" or "license" for more information.
> 
> 
> Then, I can start playing with variables, strings, lists and all the
> other things that Mark Lutz may mention.
> 
> Here's what I actually typed and what Python told me:
>   >>> spam = 'spam'
>   >>> type(spam)
> 
>   <type 'str'>
> 
>   >>> ham = list(spam)
>   >>> type(ham)
> 
>   <type 'list'>
> 
>   >>> viking = ''.join(ham)
>   >>> viking
> 
>   'spam'
> 
>   >>> type(viking)
> 
>   <type 'str'>
> 
> So, the point I'm trying to make here is that you did quite a bit
> 
> in just one line, by calling:
>   >>> ham=list('spam');ham
> 
> Consider playing a bit with the interpreter.
> 
>  : ham=list('spam');ham
>  : ['s','p','a','m']
>  : 
>  : How do I get a string back?
> 
> I will now try to annotate my session above, so that you can maybe
> see how I was able to get a string.
> 
>   >>> spam = 'spam'          # -- variable spam now contains string 'spam'
>   >>> type(spam)
> 
>   <type 'str'>               # -- and Python tells me it's a string
> 
>   >>> ham = list(spam)       # -- I'm running your command
>   >>> type(ham)
> 
>   <type 'list'>              # -- Wait, what!?  It's a list?!  Oh.  Yeah.
> 
>   >>> viking = ''.join(ham)  # -- create a string of the list elements
>   >>> viking
> 
>   'spam'
> 
>   >>> type(viking)           # -- ah, here's our string!
> 
>   <type 'str'>
> 
> Try out the .join(ham) trick with other strings.  For
> 
> example...what happens when you try these yourself:
>   >>> ham = list('spam')
>   >>> '-'.join(ham)
>   >>> ':'.join(ham)
>   >>> 'B'.join(ham)
>   >>> '    '.join(ham)
> 
> Hopefully, you see that there's no magic here at all--just that
> you have learned how create a string with all of the elements in a
> list.  Try something else for your amusement, as well...
> 
>   >>> ' '.join(list('frobnitz'))
> 
> Does that make sense?  Welcome to Python, and Mark Lutz has been
> writing books on Python for almost as long as Python has been
> around.  So, good luck and ask questions here.  There's quite a
> group here willing to help.
> 
> -Martin
The answer was to include ''.join(ham), as in making it a string method 
instead of a function, which doesn't exist.  Thanks!

For me, picking up Python is a retirement project, so no shortage of time to 
learn.

A lot of people tend to be intimidated by Mark Lutz, and so am I, I guess.  
There are a lot of books out there that will get one up and running more 
quickly, but I get the feeling his is _complete_ instruction, not something 
just slopped through.  "Learning Python" has taken a long time.  I'm not sure 
how I'll be able to get through "Programming..."  You'll probably see me on 
the Core list next year sometime.


More information about the Tutor mailing list