WP wrote:
Hello, I have dictionary {1:"astring", 2:"anotherstring", etc}

I now want to print:
"Press 1 for astring"
"Press 2 for anotherstring" etc

I could do it like this:
dict = {1:'astring', 2:'anotherstring'}
for key in dict.keys():
     print 'Press %i for %s' % (key, dict[key])

Press 1 for astring
Press 2 for anotherstring

Remember that a dict is inherently unordered, and if you get it ordered, you're just lucky :) Also, it's bad style to mask the builtin "dict" with your own.

but can I use a join instead?

If you want to lean on this ordered assumption, you can simply do

  d = {1:"astring", 2:"another string"}
  s = '\n'.join(
    "Press %i for %s" % pair
    for pair in d.iteritems()
    )

and you'd have the resulting value in "s".

But remember that if the order appears broken, you get to keep both parts :) Better to do something like

  s = '\n'.join(
    "Press %i for %s" % pair
    for pair in sorted(d.items())
    )

-tkc








--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to