1

我正在使用 Python 2.7 并希望在 Django 表单中创建一个选项。我在选择下拉列表中有我想要的项目的字典,但想知道处理这个问题的最 Pythonic 方式。

这是我的解决方案:

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 回答