3

次のような辞書があるとします。

dic = {'1': 'string', 1 :'integer'}

それをdjangoテンプレートに渡してアクセスしようとするとdic.1、常に返されます'string'

キーを削除する'1'と、dic.1が返されます'integer'

これには、次のようなカスタム タグを使用できることがわかっています。

from django import template
register = template.Library()
@register.filter
def get_key(value, arg):
    return value.get(arg, None)

その後、{{ dic|get_key:1 }}正常に動作します。

しかし、カスタム タグを使用せずに整数/浮動小数点キーに直接アクセスする方法はありますか?

4

1 に答える 1

2

Dictionary access speed comparison with integer key against string keyのトピックに関する質問に対する回答を参照してください。Python (CPython) は、常に最初に文字列ベースのキーを見つけようとしてから、代替手段を見つけようとします。

同様の文字列キーと整数キーを混在させるのには十分な理由があるかもしれませんが、この手法を避けるか、整数を文字列に型変換して、キー値を直接参照できないことを排除することをお勧めします。

于 2013-08-18T22:59:13.593 に答える