Skip to main content
 首页 » 编程设计

python之是否有一个命令可以按数据类型对 Python 列表进行排序

2025年05月04日12xxx_UU

给定以下列表:

l = [True, 3, 7.3, (5,6), True, 'orange', 25, 'banana', False, (4,5), 9.2] 

其中包含多种类型:

for element in l: 
    print (type(element)) 

输出:

<class 'bool'> 
<class 'int'> 
<class 'float'> 
<class 'tuple'> 
<class 'bool'> 
<class 'str'> 
<class 'int'> 
<class 'str'> 
<class 'bool'> 
<class 'tuple'> 
<class 'float'> 

是否有一个命令会根据类型对其进行排序,也就是说,类型会分组?

请您参考如下方法:

您可以使用类型的字符串表示形式进行排序:

>>> sorted(l, key=lambda x: str(type(x))) 
[True, True, False, 7.3, 9.2, 3, 25, 'orange', 'banana', (5, 6), (4, 5)] 

相似的类型将被分组在一起,保持它们出现的初始顺序。

在Python 2中,类型对象可以直接排序,可以直接将type作为key函数传递:

>>> sorted(l, key=type) 
[True, True, False, 7.3, 9.2, 3, 25, 'orange', 'banana', (5, 6), (4, 5)]