numpy
配列のリストがあり、ジョイントペアのインデックスを取得したいと思います。基本的に、次のリストのリストがある場合:
lst = [[1, 2, 3, 5], [1, 2, 9], [5, 6], [9]]
私は以下が欲しい:
[[0, 1], [0, 2], [1, 3]]
これが私がこれまでに持っているものですが、それは遅いです:
out = out
for i, item in enumerate(lst):
for j in range(i+1, len(lst)):
if not set(item).isdisjoint(lst[j]):
out.append([i, j])
私はあなたの助けに感謝します。
あなたはこのようなことを試すことができます:
from itertools import combinations
lst = [[1, 2, 3, 5], [1, 2, 9], [5, 6], [9]]
lst_set = [set(e) for e in lst]
print([[x, y] for x, y in combinations(range(len(lst)), 2) if not lst_set[x].isdisjoint(lst_set[y])])
出力
[[0, 1], [0, 2], [1, 3]]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加