Python 从列表创建元组的元组的更优雅的方法
我使用的是Python2.7,希望在Django表单中创建一个选项。我在选择下拉列表中有一个我想要的项目的字典,但我想知道处理这个问题的最具python风格的方法 以下是我的解决方案:Python 从列表创建元组的元组的更优雅的方法,python,django,forms,tuples,Python,Django,Forms,Tuples,我使用的是Python2.7,希望在Django表单中创建一个选项。我在选择下拉列表中有一个我想要的项目的字典,但我想知道处理这个问题的最具python风格的方法 以下是我的解决方案: my_dict = { 'AL' : 'Alabama', 'AK' : 'Alaska', etc... } my_list = [] for value in (my_dict): my_list.append('({0}, {1})'.format(value, gatew
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...)
这会管用的,但我觉得不太雅致。有人能推荐一个更好的解决方案吗?事实上,创建一个选项并不一定需要一个元组,而是一个列表:
>>> d = {'AL' : 'Alabama', 'AK' : 'Alaska',}
>>> d.items()
[('AK', 'Alaska'), ('AL', 'Alabama')]
对于元组:
>>> tuple(d.items())
(('AK', 'Alaska'), ('AL', 'Alabama'))
事实上,创建一个选项并不一定需要一个元组,而是一个列表:
>>> d = {'AL' : 'Alabama', 'AK' : 'Alaska',}
>>> d.items()
[('AK', 'Alaska'), ('AL', 'Alabama')]
对于元组:
>>> tuple(d.items())
(('AK', 'Alaska'), ('AL', 'Alabama'))
您可以使用列表理解来替换循环
my_list = ['({0}, {1})'.format(value, gateways.get(value)) for value in my_dict]
甚至在生成我的元组时直接将其作为生成器表达式编写
您可以使用列表理解来替换循环
my_list = ['({0}, {1})'.format(value, gateways.get(value)) for value in my_dict]
甚至在生成我的元组时直接将其作为生成器表达式编写
您正在创建字符串,而不是元组。。你们的产出将是阿拉巴马州,阿拉巴马州,阿拉斯加州。。。编码为无引号。您正在创建字符串,而不是元组。。你们的产出将是阿拉巴马州,阿拉巴马州,阿拉斯加州。。。没有引号,我能理解…谢谢。这更优雅。对不起,德福兹,我误解了对话,为所有的一切道歉。我能理解它…谢谢。这要优雅得多。对不起,德福兹,我误解了对话,为所有人道歉。