在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'
答案 0 :(得分:2)
您的系统中的spyder IDE可能默认默认为Python 3,而PyCharm项目则默认为Python 2。
在Python 3中,str
和int
实例之间的顺序是不确定的,并引发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))