Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表创建元组的元组的更优雅的方法_Python_Django_Forms_Tuples - Fatal编程技术网

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

我使用的是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, 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]
甚至在生成我的元组时直接将其作为生成器表达式编写


您正在创建字符串,而不是元组。。你们的产出将是阿拉巴马州,阿拉巴马州,阿拉斯加州。。。编码为无引号。您正在创建字符串,而不是元组。。你们的产出将是阿拉巴马州,阿拉巴马州,阿拉斯加州。。。没有引号,我能理解…谢谢。这更优雅。对不起,德福兹,我误解了对话,为所有的一切道歉。我能理解它…谢谢。这要优雅得多。对不起,德福兹,我误解了对话,为所有人道歉。