Skip to main content
 首页 » 编程设计

Python:如何用整数和字母对数组进行排序

2025年05月04日12qlqwjy

当我有一个整数和字母的列表时, 我想按某种顺序对这些元素进行排序。 例如,

ex_array = [1, 3, 2', 2, 1', 3', 3] 

应该排序为

sorted(ex_array) = [1', 1, 2', 2, 3', 3, 3] 

在这种情况下,字母的顺序是

1' < 1 < 2' < 2 < 3' < 3. 

当只包含整数时,我可以编写代码。 但我不知道如何比较带有底漆和未底漆的符号。

你能告诉我用 Python 做什么吗?

请您参考如下方法:

按每个元素的整数值以及该元素是否为整数排序:

>>> a = [1, 3, '2', 2, '1', '3', 3, '10', 10, 'potato', "1'", lambda: None, '-3', -3, -4] 
>>> sorted(a, key=lambda x: (int(''.join(v for i,v in enumerate(str(x)) if v.isdigit() or (i==0 and v=='-')) or 0), isinstance(x, int))) 
[-4, '-3', -3, 'potato', '1', "1'", 1, '2', 2, '3', 3, 3, '10', 10, <function <lambda> at 0x000000DAD51DB9D8>] 

如果两个元素具有相同的整数值,则字符串将放在整数之前。