On 29/06/2012 17:31, Josh English wrote:
I have a list of tuples, and usually print them using:
print c, " ".join(map(str, list_of_tuples))
This is beginning to feel clunky (but gives me essentially what I want), and I
thought there was a better, more concise, way to achieve this, so I explored
the new string format and format() function:
c = (1,3)
s = "{0[0]}"
print s.format(c)
'1'
print format(c,s)
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ValueError: Invalid conversion specification
I'm running *** Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32
bit (Intel)] on win32. ***
(This is actually a PortablePython run on a Windows 7 machine)
Any idea why one form works and the other doesn't?
The ".format" method accepts multiple arguments, so the placeholders in
the format string need to specify which argument to format as well as
how to format it (the format specification after the ":").
The "format" function, on the other hand, accepts only a single
argument to format, so it needs only the format specification, and
therefore can't accept subscripting or attributes.
>>> c = "foo"
>>> print "{0:s}".format(c)
foo
>>> format(c, "s")
'foo'
--
http://mail.python.org/mailman/listinfo/python-list