我正在尝试对具有混合性质字段的列表中的元组进行排序: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]):