0

文字列の書式設定を使用して辞書から情報を呼び出すにはどうすればよいですか?

これが私がこれまでに試みたことです(おそらくかなり悪い...)

value = raw_input("Indicate a number: ")
print number_stats["chm%"] % (value,)

ディクショナリ number_stats には、値「chm1」、「chm2」などに関する情報が保持されます。

項目 chm1 が間違いなく辞書に格納されているため、キー エラーが表示されて混乱します。

これを行うより良い方法はありますか?

4

4 に答える 4

2

を行うときはnumber_stats["chm%"] % (value,)number_stats["chm%"]最初に実行し% (value,)てから結果に適用します。あなたが望むのは%、文字列に直接適用することです:

number_stats["chm%s" % (value,)]

が必要であることに注意してください%s%それ自体は有効な文字列置換ではありません。

ただし、おそらくもっと良い方法があります。なぜあなたの辞書は数字自体をキーにするのではなく、"chm1"andのようなキーを持っているのですか (つまり、キー 1 と 2 を持っています)? "chm2"その後、あなたはただ行うことができますnumber_stats[value]. (または、あなたが必要とするvalueから読む場合raw_inputnumber_stats[int(value)]

于 2013-07-16T08:20:53.980 に答える
2

このように使用します。角かっこ内で文字列の書式設定を使用する必要があります

>>> number_stats={'a1': 1}
>>>
>>> print number_stats['a%s' % 1]
1
>>>
于 2013-07-16T08:21:10.407 に答える
1
print number_stats["chm%s" % (value)]

動作するはずです。

ただし、代わりにこれを行う必要があります。

print number_stats.get("chm%s" % (value), "some_default_value")

ユーザーが無効なキーを入力した場合のクラッシュを回避するため。メソッドの詳細については、これを参照してください。get

于 2013-07-16T08:22:08.367 に答える
0

代わりに、文字列メソッドを使用できますformat...

value = input("Indicate a number: ")
print number_stats["chm{}".format(value)]
于 2013-07-16T08:36:12.163 に答える