各反復が新しい行セットの交差である一連の交差を反復しようとしています。次のようなコードがあります。
for liness in range(len(NNCatelogue)):
for iii in [iii for iii, y in enumerate(NNCatelogue[iii]) if y in set(NNCatelogue[liness]).intersection(catid)]:
print iii, y
NNCatelogue は基本的に 1268 X 12 の行列であり、行の新しい反復ごとに新しい行が呼び出されます。必要な行番号(つまり、0、1、2 ...)を単純に入力すると、予想される出力が得られます(前にforループがありません)。上記のコードを実行すると、次の出力が得られます。
10 C-18-1064
4 C-18-1122
4 C-18-1122
5 C-18-1122
5 C-18-1122
7 C-18-1122
8 C-18-1122
9 C-18-1122
10 C-18-1122
11 C-18-1122
6 C-18-1122
...
予想される出力は次のようになります。
0 C-18-1
1 C-18-259
2 C-18-303
3 C-18-304
4 C-18-309
5 C-18-324
6 C-18-335
7 C-18-351
8 C-18-372
9 C-18-373
10 C-18-518
11 C-18-8
私が間違っている可能性がある場所はありますか?どんな助けでも大歓迎です!
アップデート:
回答の 1 つのバリエーションを試してみましたが、予想に近いものでしたが、それほどではありません。これが私が試したものです:
counter = 0
for row in NNCatelogue:
for value in row:
if value in set(NNCatelogue[counter]).intersection(catid):
print counter, value
counter += 1
結果の出力は次のとおりです。
0 C-18-1
1 C-18-324
2 C-18-351
3 C-18-4
4 C-18-5
5 C-18-6
6 C-18-7
7 C-18-8
8 C-18-9
9 C-18-10
10 C-18-11
11 C-18-12
12 C-18-13
...
したがって、いくつかの交差点は正しいですが、それは私の望ましい出力ではありません...ここから何かアイデアはありますか?