1

Python 2.7を使用していて、Djangoフォームで選択肢を作成したいと思います。選択ドロップダウンに必要な項目の辞書がありますが、これを処理するための最もPython的な方法を知りたいです。

これが私の解決策です:

my_dict = {
    'AL' : 'Alabama',
    'AK' : 'Alaska',
    etc...
}

my_list = []
for value in (my_dict):
    my_list.append('({0}, {1})'.format(value, gateways.get(value)))

my_tuple = '({0})'.format(','.join(my_list))

print my_tuple


(('AL', 'Alabama'),('AK', 'Alaska'),etc...)

これは機能しますが、私にはあまりエレガントに見えませんでした。誰かがより良い解決策を提案できますか?

4

2 に答える 2

4

実際、選択肢を作成するために必ずしもタプルは必要ありません。かなりのリストです。

>>> d = {'AL' : 'Alabama', 'AK' : 'Alaska',}
>>> d.items()
[('AK', 'Alaska'), ('AL', 'Alabama')]

タプルの場合:

>>> tuple(d.items())
(('AK', 'Alaska'), ('AL', 'Alabama'))
于 2012-10-10T10:07:48.003 に答える
0

リスト内包表記を使用してループを置き換えることができます

my_list = ['({0}, {1})'.format(value, gateways.get(value)) for value in my_dict]

そして、の生成におけるジェネレータ式として直接それを書くことさえmy_tuple

my_tuple = '({0})'.format(','.join('({0}, {1})'.format(value, gateways.get(value)) for value in my_dict))
于 2012-10-10T10:10:15.883 に答える