python中如何排序数字表_在python中排序 – 如何对包含字母数字值的列表进行排序?...

你想使用

natural sort:

import re

_nsre = re.compile('([0-9]+)')

def natural_sort_key(s):

return [int(text) if text.isdigit() else text.lower()

for text in re.split(_nsre, s)]

用法示例:

>>> list1 = ["1", "100A", "342B", "2C", "132", "36", "302F"]

>>> list1.sort(key=natural_sort_key)

>>> list1

['1', '2C', '36', '100A', '132', '302F', '342B']

这通过将元素拆分为分隔数字并将它们作为整数而不是字符串进行比较的列表来实现:

>>> natural_sort_key("100A")

['', 100, 'a']

>>> natural_sort_key("342B")

['', 342, 'b']

请注意,这只适用于Python3,如果您始终将int与int和字符串与字符串进行比较,否则会出现TypeError:unorderable types exception.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值