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 ドキュメント

このメソッドが呼び出される文字列には、中括弧で区切られたリテラル テキストまたは置換フィールドを含めることができます{}。各置換フィールドには、位置引数の数値インデックス、またはキーワード引数の名前が含まれます。

フォーマット文字列の構文

field_name 自体はarg_name、数値またはキーワードのいずれかである で始まります。数値の場合は位置引数を参照し、キーワードの場合は名前付きキーワード引数を参照します。

...

arg_name の後には、任意の数のインデックスまたは属性式を続けることができます。フォームの式は'.name'を使用して名前付き属性を選択し、フォームのgetattr()式は'[index]'を使用してインデックス検索を行い__getitem__()ます。

于 2013-03-30T00:12:01.730 に答える