在python中,我创建了一个列表

时间:2015-03-02 03:37:41

标签: python list sorting python-3.x

mylist= [9, 'a', 'cat', False, 3.14, 7]

h = mylist.sort() 
print(mylist)

然而错误:

Traceback (most recent call last):

TypeError: unorderable types: str() < int()

出现了! 我如何将类型更改为int,以便程序可以成功运行。

3 个答案:

答案 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