我收到TypeError:“ str”和“ int”的实例之间不支持“ <”

时间:2018-12-04 15:27:56

标签: python string int

在python中,使用min()函数在列表中打印最小值时,在spyder Ide中尝试时出现错误。但是,当我在pycharm中运行相同的代码时,效果很好。我该怎么做才能使其在spyder Ide上打印?

这是我的代码

lst = [101,754,'abcd','xyz','m']
Printing("Minimum value in List:", min(lst))

这给出了一个错误:

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

2 个答案:

答案 0 :(得分:2)

您的系统中的spyder IDE可能默认默认为Python 3,而PyCharm项目则默认为Python 2。

在Python 3中,strint实例之间的顺序是不确定的,并引发Exception。在Python 2中,IIRC根据两个对象的地址(id())返回True或False。

答案 1 :(得分:0)

由于列表中的某些元素是字符串,因此无法在列表中找到最小值,因为min()函数也会尝试将数字与字符串进行比较。

尝试一下:

List = [101,754,'abcd','xyz','m']
numList = list(filter(lambda x: type(x)!=str, List)) # Creates a new list with only numbers
print("Minimum value in List:", min(numList))