同じ列値を削除

同じ列値を削除

非常に大きなファイルがあり、列の値が9の場合は削除したいと思います。

サンプル:

私のファイルの値は次のとおりです

1 5 8 3 5 9 5 7 6 9
2 5 7 4 2 9 7 6 3 1
5 9 7 4 1 9 5 7 9 1

すべての行から値が9の列を削除したいです(列サイズが大きすぎて、最初の列= 9、2番目の列= 9...などを確認できません)。動的スクリプトが必要です。

出力は次のようになります。

1 5 8 3 5 5 7 6 9
2 5 7 4 2 7 6 3 1
5 9 7 4 1 5 7 9 1

私は新しい人で、たくさん試してみましたが、正しく理解していませんでした。

どうすればいいですか?

ご協力ありがとうございます

ベストアンサー1

Pythonでは:

#! /usr/bin/env python3

import sys
# Get the numbers
numbers = [[int(x) for x in line.strip().split()] for line in sys.stdin] 
# Get indexes of 9 in sets for each row
index_9 = (set(x for x, num in enumerate(line) if num == 9) for line in numbers)  

common_column = next(index_9).intersection(*index_9)

for line in numbers:
    print(' '.join((str(num) for x, num in enumerate(line) if x not in common_column)))

おすすめ記事