如何在Python中对存储为字符串的整数列表进行排序[重复]

kh212irz  于 2023-08-02  发布在  Python
关注(0)|答案(4)|浏览(111)

此问题在此处已有答案

How to sort a Python list of strings of numbers(4个答案)
三年前就关门了。
我试图对实际上是整数的字符串列表进行排序,但没有得到正确的排序值。如何按照字符串的整数值排序呢?

a = ['10', '1', '3', '2', '5', '4']
print(sorted(a))

字符串
输出量:

['1', '10', '2', '3', '4', '5']


所需输出:

['1', '2', '3', '4', '5', '10']

bbuxkriu

bbuxkriu1#

我们必须使用lambda作为键,并在排序函数发生之前将每个字符串转换为int。

sorted(a,key=lambda i: int(i))

Output :
     ['1', '2', '3', '4', '5', '10']

字符串
更短的方法->sorted(a,key=int)。感谢@Mark的评论。

eivgtgni

eivgtgni2#

所以解决这个问题的方法之一是将列表转换为整数列表,通过迭代每个元素,并将其转换为整数,然后对其进行排序,并再次将其转换为字符串列表。

von4xj4u

von4xj4u3#

您可以将字符串转换为整数,对它们进行排序,然后再转换回字符串。使用列表解析的示例:

sorted_a = [str(x) for x in sorted(int(y) for y in a)]

字符串
更详细的版本:

int_a = [int(x) for x in a]  # Convert all elements of a to ints
sorted_int_a = sorted(int_a)  # Sort the int list
sorted_str_a = [str(x) for x in sorted_int_a]  # Convert all elements of int list to str

print(sorted_str_a)


注意:@tedd对这个问题的解决方案是这个问题的首选解决方案,我肯定会推荐这个解决方案。

3yhwsihp

3yhwsihp4#

每当你有一个元素列表,你想使用元素的一些属性进行排序,使用key参数(见文档)。
它看起来像这样:

>>> a = ['10', '1', '3', '2', '5', '4']
>>> print(sorted(a))
['1', '10', '2', '3', '4', '5']
>>> print(sorted(a, key=lambda el: int(el)))
['1', '2', '3', '4', '5', '10']

字符串

相关问题