使用字符串插值获取字典中的列表

时间:2013-03-30 00:09:08

标签: python string dictionary string-interpolation

我正在尝试使用字符串插值从字典中获取值。

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

str.format documentation

  

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

Format string syntax

  

field_name本身以arg_name开头,'.name'是数字或关键字。如果它是一个数字,它引用一个位置参数,如果它是一个关键字,它引用一个命名关键字参数。

     

...

     

arg_name后面可以跟任意数量的索引或属性表达式。表单getattr()使用'[index]'选择命名属性,而__getitem__()形式的表达式使用{{1}}执行索引查找。