0

我正在尝试从带有字符串插值的字典中获取一个值。

字典有一些数字和数字列表:

d = { "year" : 2010, \
"scenario" : 2, \
"region" : 5, \
"break_points" : [1,2,3,4,5] }

是否可以在字符串插值中引用列表,或者我是否需要为每个列表识别唯一键?

这是我尝试过的:

str = "Year = %(year)d, \
Scenario = %(scenario)d, \
Region = %(region)d, \
Break One = %(break_points.0)d..." % d

我也试过了%(break_points[0])d,而且%(break_points{'0'})d

这是可能的,还是我需要给他们键并将它们保存为字典中的整数?

4

1 回答 1

4

这可以通过新型格式实现:

print "{0[break_points][0]:d}".format(d)

或者

print "{break_points[0]:d}".format(**d)

 

str.format 文档

调用此方法的字符串可以包含由大括号分隔的文字文本或替换字段{}。每个替换字段都包含位置参数的数字索引或关键字参数的名称。

格式化字符串语法

The field_name itself begins with an arg_name that is either a number or a keyword. If it’s a number, it refers to a positional argument, and if it’s a keyword, it refers to a named keyword argument.

...

The arg_name can be followed by any number of index or attribute expressions. An expression of the form '.name' selects the named attribute using getattr(), while an expression of the form '[index]' does an index lookup using __getitem__().

于 2013-03-30T00:12:01.730 回答