我有一个不同语言的国家/地区名称列表,我尝试按国家/地区名称排序。目前,排序基于索引值。
以下是我截断的国家/地区名称列表:
ADDRESS_COUNTRY_STYLE_TYPES = {}
for language_code in LANGUAGES.iterkeys():
ADDRESS_COUNTRY_STYLE_TYPES[language_code] = OrderedDict()
if 'af' in LANGUAGES.iterkeys():
ADDRESS_COUNTRY_STYLE_TYPES['af'][0] = " Kies 'n land of gebied" # Select a country or territory
ADDRESS_COUNTRY_STYLE_TYPES['af'][1] = "Afganistan" #Afghanistan
ADDRESS_COUNTRY_STYLE_TYPES['af'][2] = "Åland" #Aland
ADDRESS_COUNTRY_STYLE_TYPES['af'][3] = "Albanië" #Albania
....
ADDRESS_COUNTRY_STYLE_TYPES['af'][14] = "Australië" #Australia
ADDRESS_COUNTRY_STYLE_TYPES['af'][15] = "Oostenryk" #Austria
ADDRESS_COUNTRY_STYLE_TYPES['af'][16] = "Aserbeidjan" #Azerbaijan
ADDRESS_COUNTRY_STYLE_TYPES['af'][17] = "Bahamas" #Bahamas
ADDRESS_COUNTRY_STYLE_TYPES['af'][18] = "Bahrein" #Bahrain
ADDRESS_COUNTRY_STYLE_TYPES['af'][19] = "Bangladesj" #Bangladesh
ADDRESS_COUNTRY_STYLE_TYPES['af'][20] = "Barbados" #Barbados
ADDRESS_COUNTRY_STYLE_TYPES['af'][21] = "Wit-Rusland" #Belarus
ADDRESS_COUNTRY_STYLE_TYPES['af'][22] = "België" #Belgium
....
以下是我的views.py文件中的代码,该文件调用国家/地区名称:
def get_address_country_style_types(available_languages, with_country_style_zero=True):
address_country_style_types = {}
preview_labels = {}
for code, name in available_languages:
address_country_style_types[code] = ADDRESS_COUNTRY_STYLE_TYPES[code].copy()
if not with_country_style_zero:
address_country_style_types[code].pop(0)
preview_labels[code] = ADDRESS_DETAILS_LIVE_PREVIEW_LABELS[code]
# in case preview labels are not defined for the language code
# fall back to 'en', which should always be there
if len(preview_labels[code]) == 0:
preview_labels[code] = ADDRESS_DETAILS_LIVE_PREVIEW_LABELS['en']
address_country_style_types = sorted(address_country_style_types, key=lambda x:x[1])
return address_country_style_types, preview_labels
以上代码仅返回html下拉列表中的索引号。问题在于以下代码行(或者更多的是我缺乏如何使其工作的知识):
address_country_style_types = sorted(address_country_style_types, key=lambda x:x[1])
如何退回已排序的国家/地区列表?我是否以正确的方式使用lambda?我应该在这里使用lambda吗?
我这几天一直在研究这个问题,我的编码技巧不是很强,而且我读了很多相关的帖子都无济于事,所以对任何帮助表示赞赏。
我已阅读此blog有关排序显示在表格HTML选择下拉列表中的多语言国家/地区名称列表 - 这实际上就是我尝试做的事情。
修改
在上面的代码中注释掉下面的代码行会返回一个国家/地区名称列表,但国家/地区名称按索引值而不是国家/地区名称排序。
address_country_style_types = sorted(address_country_style_types, key=lambda x:x[1])
答案 0 :(得分:2)
我无法以编程方式对多语言国家/地区名称进行排序。
相反,我将列表复制到excel并点击排序按钮(基于翻译的国家/地区名称 - 索引值保持一致),然后将数据复制回文件。按预期工作 - 只需要做很多工作。
我希望这有助于某人。