2
我是Python的noob,來自C/C++。 我正在使用連接到Beaglebone Black的加速度計。我收集6 [X,Y,Z]讀數加速度計爲:Python 2.7在列表中找到最小值,最大值
calib = [[-72, -80, -673], [-31, -1673, 481], [-29, -62, 1564], [-148, 1464, 545], [-1513, -67, 539], [1350, -80, 480]]
我需要從該組六個讀數找到X
,Y
,並且Z
的最小值和最大值。 我的代碼是:
max = [0] * 3
min = [0] * 3
for ndx, sample in enumerate(calib):
x, y, z = calib[ndx]
if x > max[0]:
max[0] = x
if x < min[0]:
min[0] = x
if y > max[1]:
max[1] = y
if y < min[1]:
min[1] = y
if z > max[2]:
max[2] = z
if z < min[2]:
min[2] = z
print "min", min
min [-1513, -1673, -623]
print "max", max
max [1350, 1464, 1564]
這似乎是工作,但只是不看「Python化」。必須有一個更乾淨的方法來做到這一點。有什麼建議?
您可以對測量值進行排序,並取前3個,如下所示:'listOfNumbers.sort()[:3]'。你可以通過'someList [-3:]'得到列表的最後三個元素。但是,如果你正在處理數字,我會推薦使用'numpy'來提高速度。 –
@AleksanderLidtke,它不能解決獨立的x,y和z問題 – mhlester
您需要有一個自定義標準,以便根據3個條件進行排序。 –