mylist= [9, 'a', 'cat', False, 3.14, 7]
h = mylist.sort()
print(mylist)
然而错误:
Traceback (most recent call last):
TypeError: unorderable types: str() < int()
出现了! 我如何将类型更改为int,以便程序可以成功运行。
答案 0 :(得分:1)
方法.sort()
和sorted()
要求iterable中的项目属于同一类型。
>>> sorted([1, 2]) #Same
[1, 2]
>>> sorted([1, 'a']) #Different
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
>>> sorted(['b', 'a']) #Same
['a', 'b']
>>>
答案 1 :(得分:0)
mylist= [9, 'a', 'cat', False, 3.14, 7]
h = sorted(mylist, key=lambda x: str(x))
print(h)
你需要str it并排序。
答案 2 :(得分:0)
我猜你有几种方法可以解决这个问题:
1:尝试避免脚本中断
try:
mylist.sort()
except TypeError:
pass
print(mylist)
2:将everthing转换为字符串
new_list=[str(datum) for datum in mylist]
new_list.sort()
print(new_list)
3:模拟python2排序实现的行为
4:使用python2