我正在尝试如下创建lambda字典,每个lambda都是对预定义字符串使用format方法的。
稍后使用此dict时,似乎是将格式应用于错误的字符串-键“ two”应将格式应用于{}
,但似乎将其应用于{:0f}
。
为什么会这样?
FMT1 = '{:0f}'
FMT2 = '{}'
FMT_DICT = {'one':FMT1, 'two':FMT2}
LAMBDA_DICT = {k:lambda x: v.format(x) for k,v in FMT_DICT.iteritems()}
LAMBDA_DICT['two']('str')
ValueError:类型为'str'的对象的未知格式代码'f'