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'
为什么我收到此错误?
答案 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']