按最后两位数字对数字列表进行排序

时间:2018-10-28 21:35:01

标签: python python-3.x

如何对list2进行排序= [311、409、313、202、303、410、401、105、407、408] 至 [101301401202407408408410410311313]

1 个答案:

答案 0 :(得分:2)

您可以使用余数运算符获取最后两位数字,然后将这些数字用作sorted的键:

a = [311, 409, 305, 104, 301, 204, 101, 306, 313, 202, 303, 410, 401, 105, 407, 408]
result = sorted(a, key=lambda x: (x % 100, x))
print(result)

输出

[101, 301, 401, 202, 303, 104, 204, 105, 305, 306, 407, 408, 409, 410, 311, 313]

当您要使用实际值来解决关系时,键是后两位数字和实际值的元组。