indexing in format strings
Terry Reedy
tjreedy at udel.edu
Fri Apr 11 17:45:02 EDT 2014
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
More information about the Python-list
mailing list