【问题标题】:I have wrong result with sorting sting numbers我对刺号进行排序的结果错误
【发布时间】:2022-01-09 19:15:57
【问题描述】:

我有一个包含文件名称的文件夹,我想用这些名称列出并对其进行排序,但结果很奇怪。你知道我做错了什么吗?

list = [ '10.50-178.pom', '15.00-178.pom','100.0-178.pom', '11.00-178.pom', '110.0-178.pom',
'120.0-178.pom', '130.0-178.pom', '10.00-178.pom', '140.0-178.pom' ]

print(sorted(list))

结果:['10.00-178.pom', '10.50-178.pom', '100.0-178.pom', '11.00-178.pom', '110.0-178.pom', '120.0-178.pom', '130.0-178.pom', '140.0-178.pom', '15.00-178.pom']

【问题讨论】:

标签: python-3.x sorting


【解决方案1】:

您需要指出前五个字符实际上是一个数字,因为现在每个字符都被单独考虑。

lista = ['10.50-178.pom', '15.00-178.pom', '100.0-178.pom', '11.00-178.pom', '110.0-178.pom',
        '120.0-178.pom', '130.0-178.pom', '10.00-178.pom', '140.0-178.pom']

def take_elem(elem):
    return float(elem[:4])

sorted_list = sorted(lista, key=take_elem)
print(sorted_list)   

【讨论】:

  • 应该是elem[:5]
猜你喜欢
  • 1970-01-01
  • 2018-09-15
  • 2020-01-27
  • 1970-01-01
  • 2018-07-25
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
相关资源
最近更新 更多