Robert Dailey wrote: > Hi, > > I noticed that the 'for' loop can be used inline with a list definition. > For example: > > print [i for i in mylist] > > My first question is what is the name for this? I couldn't find this > usage in the python docs; I only managed to learn about it through code > samples on the internet. > That there is a "list comprehension".
> Secondly, I'm wondering how I can use this method of a for loop to > append strings to strings in a list. For example: > > mylist = [ > "Hello ", > "Hello again " > ] > > I should be able to do this: > > print [ i + "World" for i in mylist ] > > Which should yield the output: > > ["Hello World", "Hello again world"] > Who says you should? Beside you, that is. I am afraid the interpreter isn't psychic, and it doesn't have a DWIM [1] mode. > However, instead I get an error message saying "TypeError: cannot > concatenate 'str' and 'list' objects" > > How can I achieve the above? Thanks for reading. > It's just a matter of understanding the syntax in a little more depth. In a week's time it will be blindingly obvious. >>> nicknames = ["bozo", "newbie", "newless cloob", "and welcome to c.l.py"] >>> [("hello " + name) for name in nicknames] ['hello bozo', 'hello newbie', 'hello newless cloob', 'hello and welcome to c.l.py'] >>> So, treat item [-1] from that list as the real sentiment of this message: >>> [("hello " + name) for name in nicknames][-1] 'hello and welcome to c.l.py' regards Steve [1]: Do What I Mean [and never mind what I say ...] -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden --------------- Asciimercial ------------------ Get on the web: Blog, lens and tag the Internet Many services currently offer free registration ----------- Thank You for Reading ------------- -- http://mail.python.org/mailman/listinfo/python-list