字母组合如何用python实现_在Python中对数字和字母的组合列表进行排序

你的问题并不是很清楚,但我假设你忽略了每个元组中的第一项,而只在第二项中对列表进行排序。我还假设只有从'a'到'I'的字母可以出现在这个列表中。在

转换A->1,b->2,c->3。。。i->9是利用数字字符的ASCII码和小写字母是连续的这一事实。因此,在每个字母和它的等效数字之间有一个恒定的偏移量48。在

因此,要将字符串列表转换为键,我们可以将所有字符串合并为单个字符串,然后将字符串中的每个字母字符转换为等效的数字字符,将生成的字符重新连接为单个字符串,并将该字符串转换为整数。在lst = [

("a", ['8', '0']),

("a", ['7', '0b']),

("a", ['7', '0']),

("a", ['6', '0b']),

("a", ['6', '01']),

]

def keyfunc(t):

a = [chr(ord(c) - 48) if 'a' <= c <= 'i' else c for c in ''.join(t[1])]

return int(''.join(a))

new_lst = sorted(lst, key=keyfunc)

for row in new_lst:

print(row)

输出

^{pr2}$

顺便说一句,您不应该使用list作为变量名,因为这样会隐藏内置的list类型,这可能会导致神秘的错误。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值