首页 >后端开发 >Python教程 >如何在 Python 中对数字字符串列表进行排序?

如何在 Python 中对数字字符串列表进行排序?

Linda Hamilton
Linda Hamilton原创
2024-12-04 20:32:17385浏览

How to Sort a List of Numerical Strings in Python?

对数字字符串列表进行排序

Python 的 sort() 函数在处理表示数字的字符串时可能会令人困惑。本文解释了原因并提出了对此类列表进行数字排序的解决方案。

问题:

考虑下面的代码片段:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
for item in list1:
    item = int(item)

list1.sort()
print(list1)

This代码尝试将列表中的每个字符串转换为整数,然后对列表进行排序。但是,输出不正确:

['1', '10', '2', '200', '22', '23', '3', '4']

解决方案:

给定代码中的问题是,虽然每个字符串在循环内转换为整数,循环不会更新原始列表。要解决此问题,请将字符串转换为整数并创建一个新列表:

list1 = [int(x) for x in list1]
list1.sort()

使用键函数:

如果您需要保留字符串而不是将它们转换为整数,您可以在 sort() 函数中使用 key 参数:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1.sort(key=int)

或在单个line:

list1 = sorted([int(x) for x in list1])

在这两种情况下,在比较之前都会调用 int() 函数作为每个字符串的键,从而允许列表按数字排序。

以上是如何在 Python 中对数字字符串列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn