更改元组列表,以使第一个条目与第二个条目相同

时间:2019-01-14 12:11:21

标签: python django

我有一个示例国家元组列表:

[("GB", "Great Britain"), ("IR", "Ireland"), ("IC", "Iceland")]

为了我的任务,我不需要国家代码,只需要人类可读的值。但是,Django在它的choiceField中接受元组。我写了一个简单的方法来创建一个新的元组,该元组将只包含友好名称作为元组中的两个值,例如:

[("Great Britain", "Great Britain"), ("Ireland", "Ireland"), ("Iceland", "Iceland")]

但是我想看看是否有比我的实现更简单的方法在Django或python中执行此操作。有人有什么想法吗?

方法

def change_country_tuples(country_list):
    new_country_list = []
    for country in country_list: 
        new_country_list.append(tuple((country[1], country[1])))
    return new_country_list

Django选择字段调用

country = fields.ChoiceField(
    label='Choose country',
    choices=[('', 'Select a country')] + change_country_tuples(country_choices),
)

编辑 为了清楚起见,更新后的代码是:

def change_country_tuples(country_list):
    return [(country_name, country_name) for country_code, country_name in country_list]

1 个答案:

答案 0 :(得分:0)

在python changeCountryTuples中,可以使用以下代码:

newCountryList = [(country[1],country[1]) for country in country_list]