因此我必须进行一些数据处理,并且我遇到了如何正确编写此问题的障碍。
我有一个整数数组,范围在0到400之间。
现在大多数值都在一定范围内(~100)
我想找到所有价值超过彼此两倍的价值观。所以2 * a> = b。 例如,如果你有90和180.我想找到那些和所有这些的索引,所以让我们在同一个数组中说我也有200.然后我也想要返回90和200。
感谢任何帮助
答案 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)]