使用Python比较多维数组中的值

时间:2015-07-21 05:52:53

标签: python

我有一系列数字:

a=  [[0, 0.1667],
 [1, 0.1667],
 [2, 0.25], 
 [3, 0.25],
 [4, 0.167]].

每对包含数字及其比例。

我想将特定数字Z与结果比例进行比较。让我们假设,Z = 0.02。因此,我必须迭代比例并将每个比例与Z进行比较,找到比例低于Z的数字并仅打印该数字。

我认为,比例需要先从最高到最低排序,然后再与Z进行比较。

2 个答案:

答案 0 :(得分:1)

如果您处理大量数据,排序将会有所帮助,然后您可以循环直到第一个元素大于z并且您已完成。

但是,通过所有元素的简单方法是使用list comprehension

a = [[0, 0.1667],
 [1, 0.1667],
 [2, 0.25], 
 [3, 0.25],
 [4, 0.167]]

z = 0.2
print [x for x in a if x[1] < z]

这将遍历a中的所有元素,并检查a中每个元素的第二个数字是否小于z,如果是,则将它们添加到新列表中。

输出:

>>> 
[[0, 0.1667], [1, 0.1667], [4, 0.167]]

(我选择z = 0.2,因为z = 0.02列表为空:))

答案 1 :(得分:0)

如果您必须使用具有多个Z值的单个此类数组,那么排序将很有帮助。否则只需循环遍历数组并将比例与Z进行比较并创建所需的列表。在这种情况下对数组进行排序会更加昂贵。

PS:如果您的问题是如何根据比例对数组进行排序:

a.sort(key=lambda x: x[1]))