2016-03-05 137 views
1

我正在尝试为3轴加速度计编写一个方向例程。我卡住的部分是,我有一个词典,列出了所有我的轴',在读取'z轴'后,我想从Availiable_axis列表中删除该轴。这是我的代码的一部分,它演示了我正在尝试做什么。删除基于Python中的字典值的数组项目

import operator 

Readings1 = { 0:{'x':0.1, 'y':-1, 'z':-0.1}, 1:{'x':.4, 'y':-.1, 'z':-0.1}, 
     2:{'x':-0.4, 'y':-.8, 'z':-0.1}, 3:{'x':0.1, 'y':-.1, 'z':-0.6}, 
     4:{'x':0.1, 'y':-.2, 'z':0.4}} 

SetupValue = {'Axis':{'x-axis':'x','y-axis':'y','z-axis':'z'}} 

Available_axis = [SetupValue['Axis']['x-axis'], SetupValue['Axis']['y-axis'], SetupValue['Axis']['z-axis']] 
axes = Readings1[0] 

print axes 

for key in axes: 
    axes[key] = abs(axes[key]) 

print axes 


print (max(axes.iteritems(), key = operator.itemgetter(1))[0]) 
Available_axis.pop(max(axes.iteritems(), key = operator.itemgetter(1))[0],0) 

任何帮助,将不胜感激。

+0

为什么/如何不是代码工作? –

+0

'Available_axis.pop() print Available_axis' - >'(x,y)'...或者你还想从你的读数中删除z轴吗?顺便说一句,我不认为字典是这类数据的好商店。字典(哈希表)适用于快速查找非顺序密钥,但您拥有顺序数据。列表或numpy数组就足够好了。如果你想要列名,看看熊猫。 – roadrunner66

+0

'Available_axis'是一个列表,而不是字典。 pop()列表只接受一个可选参数,一个索引值。 –

回答

1

Available_axis是一个列表。从列表中弹出时,必须指定整数的位置。

你也可以有一个简短的列表理解,删除目标变量。

Available_axis = [x for x in Available_axis 
        if x != max(axes.iteritems(), key = operator.itemgetter(1))[0]] 
+0

完美!谢谢! –