对列表中以整数开头的字符串进行排序

近期遇到一个小任务,要求按序号(integer affix:整数前缀)从小到大的顺序输出某列表中所有的字符串元素。当时查了一些资料解决了,在此做个记录。

一、问题描述

输入: li = ['99_A_item_b', '1_A_item_a', '12_A_item_c', '102_A_item_f', '20_A_item_d', '15_A_item_e']

(该列表是自己随便编的,但当时处理的列表有个特点,即每一项都有一个子串“A_”,且其前面是数字加下划线,方便定位查找)

预期输出:['1_A_item_a', '12_A_item_c', '15_A_item_e', '20_A_item_d', '99_A_item_b', '102_A_item_f']

如果用普通的list.sort()方法,会发现它排序的法则与我们预期的不一样:

它是根据字符串的第一位、第二位依次进行排序:比如每个元素的第一位,分别是1,1,1,1,2,9;第二位分别是0,2,5等等。

二、解决方案

sorted函数加上一个lambda函数(笔者认为非常妙,读者觉得香

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值