如何通过在最后保留一些元素来对 python 列表进行排序
How to sort python list by keeping some elements in the end
我想根据大陆对国家/地区列表进行排序,但希望将 'Rest of Asia' 和 'Rest of America' 保留在末尾。我们如何修改排序功能
A = ['China', 'India', 'Brazil', 'Canada', 'Rest of Asia', 'Rest of America', 'USA', 'UAE', 'Sri Lanka']
sorted(A)
我想要美洲其他地区和亚洲其他地区排在最后的结果
喜欢:
['China', 'India', 'Brazil', 'Canada', 'USA', 'UAE', 'Sri Lanka', 'Rest of Asia','Rest of America']
删除元素,对列表进行排序,然后重新追加:
A = sorted([x for x in A if "Rest" not in x]).append([x for x in A if "Rest" in x])
如果您想要的只是最后以 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'))
我想根据大陆对国家/地区列表进行排序,但希望将 'Rest of Asia' 和 'Rest of America' 保留在末尾。我们如何修改排序功能
A = ['China', 'India', 'Brazil', 'Canada', 'Rest of Asia', 'Rest of America', 'USA', 'UAE', 'Sri Lanka']
sorted(A)
我想要美洲其他地区和亚洲其他地区排在最后的结果
喜欢: ['China', 'India', 'Brazil', 'Canada', 'USA', 'UAE', 'Sri Lanka', 'Rest of Asia','Rest of America']
删除元素,对列表进行排序,然后重新追加:
A = sorted([x for x in A if "Rest" not in x]).append([x for x in A if "Rest" in x])
如果您想要的只是最后以 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'))