Python:将元组作为键的格式化字典

Python:将元组作为键的格式化字典,python,dictionary,format,tuples,Python,Dictionary,Format,Tuples,我想格式化一个用于打印的字典(Python2.7.3),字典中有元组作为键。我可以用其他类型的钥匙 >>> coord = {'latitude': '37.24N', 'longitude': '-115.81W', 'altitude':100} >>> 'Coordinates: {0[latitude]}, {0[longitude]}'.format(coord) 'Coordinates: 37.24N, -115.81W' 我尝试了相同的方法,

我想格式化一个用于打印的字典(Python2.7.3),字典中有元组作为键。我可以用其他类型的钥匙

>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W', 'altitude':100}
>>> 'Coordinates: {0[latitude]}, {0[longitude]}'.format(coord)
'Coordinates: 37.24N, -115.81W'
我尝试了相同的方法,但它不适用于元组键

>>> a={(1,1):1.453, (1,2):2.967}
>>> a[1,1]
1.453
>>> 'Values: {0[1,1]}'.format(a)

Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    'Values: {0[1,1]}'.format(a)
KeyError: '1,1'
在下,
字段名称
被描述(重点):

字段_name
本身以一个
arg_name
开头,它是一个数字或一个关键字。如果是数字,则表示位置参数;如果是关键字,则表示命名关键字参数。如果格式字符串中的数字arg_名称为0、1、2。。。按顺序,它们都可以省略(不仅仅是一些),数字0、1、2。。。将自动按该顺序插入由于
arg_name
没有引号分隔,因此无法在格式字符串中指定任意字典键(例如字符串
'10'
':-]'
)。
arg\u name
后面可以跟任意数量的索引或属性表达式。表单的表达式
'.name'
使用
getattr()
选择命名属性,而表单的表达式
'[index]'
使用
\uu getitem\uuuuu()
执行索引查找

语法将
arg\u name
描述为:

arg_name ::= [identifier | integer]
因此,
元组
不是有效的
参数名
,因为它既不是
标识符
也不是
整数
,也不能是任意的字典键,因为字符串键没有被引用。

您的引用说明我不能使用“任意”字符串,但“某些”字符串可以用作字典键,如我的第一个示例所示。那么“关键字”是什么意思呢?只有不能解释为数字的字符串?那就没有元组了?不过限制还是挺奇怪的。@mmj实际上,Python必须决定
1,1
是指
str
ing、
'1,1'
还是
tuple
(1,1)
。它做了更简单的事情,并假设如果它不是整数,那么它就是一个字符串。 arg_name ::= [identifier | integer] identifier ::= (letter|"_") (letter | digit | "_")*