我有一系列数字:
a= [[0, 0.1667],
[1, 0.1667],
[2, 0.25],
[3, 0.25],
[4, 0.167]].
每对包含数字及其比例。
我想将特定数字Z与结果比例进行比较。让我们假设,Z = 0.02。因此,我必须迭代比例并将每个比例与Z进行比较,找到比例低于Z的数字并仅打印该数字。
我认为,比例需要先从最高到最低排序,然后再与Z进行比较。
答案 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]))