if文で配列にTrueを入れたい
if文で配列にTrueを入れたいです。
circle_lists =[[0,10,30],[5,-10,30],[100,10,20]]
overlap_list = [False] * len(circle_lists)
def calc(array):
for i in range(len(array)):
for j in range(i + 1, len(array)):
if (array[0][i] - array[0][j]) ** 2 + (array[1][i] - array[1][j]) ** 2 < (array[2][i] + array[2][j]) ** 2:
overlap_list[i] = True
overlap_list[j] = True
calc(circle_lists)
print(overlap_list)
このコードを実行すると、
[True, True, True]
と出力されました。
if (array[0][i] - array[0][j]) ** 2 + (array[1][i] - array[1][j]) ** 2 < (array[2][i] + array[2][j]) ** 2:
の条件式が満たされるのは[0,10,30],[5,-10,30]
の時のみです。
なので、[True, True, False]と出力させたいです。
[[0,10,30],[5,-10,30],[100,10,20]] のインデックスは[False, False, False]のインデックスと一致しています。なのでそのような出力にさせたいです。
circle_lists の要素数が多くなることを踏まえ、後半の要素は見なくても済むようにしたいです。なので2重for文で[False, False, False]をTrueに変えたいです。
なにが間違っているのでしょうか?