给定以下列表:
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)]
