2017-03-31 53 views
0

我試圖按照本教程here使用python 3.5,但我得到錯誤,而不是預期的結果。另外,如果你解釋下面指定的行,我將不勝感激。Python 3.5'列表'對象沒有屬性'min'和無法訂購的類型:str()<int()和

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() 

回答

0

的問題可能是,你需要將列表傳遞到最小值和最大值是這樣的:

plt.plot([min(y), max(y)], [min(y), max(y)], color='blue', linewidth=3) 

眼下這將只是情節和5 [1,1]之間的線[, 5]。

如果要繪製x和y彼此,你可以這樣做:

plt.plot(x, y, color='blue', linewidth=3) 

在你列表1與整數和字符串列表中的情況下,這樣的字符串將剛剛分鐘和被忽略最大。

0

Numpy數組有最小和最大方法,Python列表不。 Python確實有minmaxfunctions,它們在numpy數組上運行速度較慢,因爲它們會遍歷所有條目作爲Python對象。該教程錯誤地將這些函數稱爲methods,它們對迭代進行操作,而不一定是列表。

1

在python 3中,比較操作對於內置的數據類型更加嚴格。

>>> min([123, 'xyz', 'zara', 'abc']) 
TypeError: unorderable types: str() < int() 

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) 
相關問題