python中的智能排序

我正在尝试对具有混合性质字段的列表中的元组进行排序:LABEL.NUMBER.例如:

 aaaa.143
 aadf.23
 aaaa.8
 ..

因此,我想首先以LABEL作为字符串排序,然后以NUMBER作为数字排序,即在排序之后应该出现:

 aaaa.8
 aaaa.143
 aadf.23
 ..

我现在有以下内容:

for i in sorted(v_distribution.items(), key=lambda x: x[0]): 

使用整个字段作为字符串进行排序,所以我得到:

 aaaa.143
 aaaa.8
 aadf.23
 ..

我应该如何修改lambda函数来执行任务?

解决方法:

您可以使用lambda来做到这一点:

for i in sorted(v_distribution.items(), key=lambda x: (x.split('.', 1)[0], int(x.split('.', 1)[1]):
上一篇:java-使用compareTo和Collections.sort


下一篇:python-按字母顺序对文本中的字母出现进行排序