非常に大きなファイルがあり、列の値が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)))