On 4/11/2014 5:33 PM, blindanagram wrote:
With:

    l = [1,2,3]

this:

    print('{0[0]:d}..{0[2]:d}'.format(l))

gives 1..3 but this:

    print('{0[0]:d}..{0[-1]:d}'.format(l))

gives:

    Traceback (most recent call last):
     File "<string>", line 1, in <fragment>
    builtins.TypeError: list indices must be integers, not str

which seems to me counterintuitive.

I expected indexing in a format string to behave as it does elsewhere
but this seems not to be true.

Been discussed on the tracker. Consider:

>>> '{0[-1]}'.format({'-1': 'neg int key'})
'neg int key'

Not quoting string keys within the format string introduces ambiguity settled by 'string unless all digits, then int'.

--
Terry Jan Reedy

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

Reply via email to