如何对含(城市名,国家名)的元组列表按双参数字母序排序?
解决元组列表排序问题
你的问题出在lambda函数的排序键顺序搞反了。你当前的写法是先按城市名排序,再按国家名排序,和需求正好相反。
正确的做法是调换排序键的顺序:先取国家名(element[1])作为第一排序依据,再取城市名(element[0])作为第二排序依据,这样就能实现先按国家A-Z排序、同国家内再按城市A-Z排序的效果。
示例代码
# 原始列表示例 city_country_list = [("Paris", "France"), ("London", "UK"), ("Lyon", "France"), ("Manchester", "UK")] # 正确的排序代码 sorted_list = sorted(city_country_list, key=lambda element: (element[1], element[0])) print(sorted_list)
运行结果
[("Lyon", "France"), ("Paris", "France"), ("London", "UK"), ("Manchester", "UK")]
运行后会先将同一国家的城市归为一组,组内再按城市名的字母顺序排列。
内容的提问来源于stack exchange,提问作者user20473020
相关产品推荐
相关产品推荐

