对字符串数字列表进行数字排序
尽管 Python sort() 函数很简单,但在处理表示数字的字符串时可能会产生误导。如下面的代码片段所示,尝试将这些字符串转换为整数然后对它们进行排序会产生不正确的结果:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] for item in list1: item = int(item) list1.sort() print(list1)
输出:
['1', '10', '2', '200', '22', '23', '3', '4']
要纠正此问题,您必须实际上将您的字符串转换为整数。这是更正后的代码:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1 = [int(x) for x in list1] list1.sort()
这将输出正确的数字顺序:
['1', '2', '3', '4', '10', '22', '23', '200']
或者,如果您需要将元素保留为字符串,您可以在 sort 中使用 key 参数()。此参数接受在比较每个元素之前调用的函数。键函数的返回值用于比较,而不是元素本身。
例如:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1.sort(key=int)
或
list1 = sorted([int(x) for x in list1])
以上是如何在 Python 中对字符串数字列表进行数字排序?的详细内容。更多信息请关注PHP中文网其他相关文章!