我想根据各大洲对国家/地区列表进行排序,但希望将“亚洲其他地区”和“美洲其他地区”保留在末尾。我们如何修改排序函数
A = ['China', 'India', 'Brazil', 'Canada', 'Rest of Asia', 'Rest of America', 'USA', 'UAE', 'Sri Lanka']
sorted(A)
我希望得到美国其他地区和亚洲其他地区最终应该达到的结果
喜欢: [“中国”、“印度”、“巴西”、“加拿大”、“美国”、“阿联酋”、“斯里兰卡”、“亚洲其他地区”、“美洲其他地区”]
最佳答案
如果您想要的只是最后以 Rest
开头的结果,您可以使用自定义排序器:
A = ['China', 'India', 'Brazil', 'Canada', 'Rest of Asia', 'Rest of America', 'USA', 'UAE', 'Sri Lanka']
def mySort(a):
if a.startswith('Rest'):
return 1
return 0
A.sort(key=mySort)
Out[1]:
['China',
'India',
'Brazil',
'Canada',
'USA',
'UAE',
'Sri Lanka',
'Rest of Asia',
'Rest of America']
或者使用匿名调用的更简单版本:
A.sort(key=lambda x: x.startswith('Rest'))
关于python - 如何通过将某些元素保留在末尾来对Python列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57301540/