返回符合特定条件的数组中的对

时间:2015-08-14 07:08:03

标签: python arrays list

因此我必须进行一些数据处理,并且我遇到了如何正确编写此问题的障碍。

我有一个整数数组,范围在0到400之间。

现在大多数值都在一定范围内(~100)

我想找到所有价值超过彼此两倍的价值观。所以2 * a> = b。 例如,如果你有90和180.我想找到那些和所有这些的索引,所以让我们在同一个数组中说我也有200.然后我也想要返回90和200。

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

这应该做你想要的:

from itertools import permutations


def twice_apart_pairs(data):
    for x, y in permutations(data, 2):
        if 2*x <= y:
            yield (x, y)


data = [1, 3, 6, 45, 82]

data.sort()

results = list(twice_apart_pairs(data))

print(results)

结果:

[(1, 3), (1, 6), (1, 45), (1, 82), (3, 6), (3, 45), (3, 82), (6, 45), (6, 82)]