在python中进行排序操作时出错

时间:2017-11-22 09:50:37

标签: python python-3.x list sorting

x=['Hello', 90, 8.9999, 4.6, 'DOG', 'CAT', 1]
x.reverse()

x
Out[109]: ['Hello', 90, 8.9999, 4.6, 'DOG', 'CAT', 1]

x.sort()

错误

Traceback (most recent call last):

  File "<ipython-input-110-42dad5a67ac3>", line 1, in <module>
  x.sort()

TypeError: '<' not supported between instances of 'int' and 'str'

为什么我收到此错误?

1 个答案:

答案 0 :(得分:0)

正如您在错误中看到的那样,您只能比较相同type的内容。你可以尝试修改int / float / str类型以便能够进行这样的比较,但是搞乱内置类型的内部属性是个坏主意。

你可以做的是将数字转换为字符串,然后进行排序。这将执行按字典顺序排序。

a = ['Hello', 90, 8.9999, 4.6, 'DOG', 'CAT', 1]
a_str = [str(e) for e in a]
a_str.sort()
a_str

将生成['1', '4.6', '8.9999', '90', 'CAT', 'DOG', 'Hello']