我试图对下面的int和string混合列表进行排序,但是得到的却是TypeError。我想要的输出顺序是先对整数排序,然后对字符串排序。在
x=[4,6,9,'ashley','drooks','chay','poo','may']
>>> x.sort()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
x.sort()
TypeError: '<' not supported between instances of 'str' and 'int'
可以将自定义键函数传递给^{} :
此键函数将列表中的每个元素映射到一个元组,其中第一个值是布尔值(
^{pr2}$True
表示字符串,False
表示数字),第二个值是元素本身,如下所示:然后使用这些元组对列表进行排序。因为
False < True
,这使得整数在字符串之前排序。具有相同布尔值的元素将按元组中的第二个值排序。在我从你的评论中可以看出,你希望先对整数排序,然后对字符串排序。在
因此,我们可以对两个单独的列表进行排序,并按如下方式将它们连接起来:
输出:
相关问题 更多 >
编程相关推荐