Python 3.5 'list' 对象没有属性 'min' 和不可排序的类型: str() < int() 和

Nor*_*mad 2 python

我尝试使用 python 3.5 遵循本教程但是我收到错误而不是预期结果。另外,如果您能解释一下下面所示的行的作用,我将不胜感激。

import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[1,2,3,4,5]

list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print ("min value element : ", min(list1))
print ("min value element : ", min(list2))

plt.scatter(x, y,  color='red') 
#please explain this line:
plt.plot([y.min(), y.max()], [y.min(), y.max()], color='blue', linewidth=3) 

plt.show()
Run Code Online (Sandbox Code Playgroud)

Håk*_*Lid 5

在 python 3 中,比较操作对于内置数据类型更加严格。

>>> min([123, 'xyz', 'zara', 'abc'])
TypeError: unorderable types: str() < int()
Run Code Online (Sandbox Code Playgroud)

min()尝试比较'xyz' < 123在 python 2 中可行,但在 python 3 中不行。

如果您想获取列表中最小的成员,请使用min(list),而不是list.min()

这应该有效,例如:

plt.plot([min(y), max(y)], [min(x), max(x)], color='blue', linewidth=3) 
Run Code Online (Sandbox Code Playgroud)