質問と回答のペアの行分割での値エラー
Python の Split() 関数を使用して入力行を複数の変数に分割しようとしたとき場合、予想される値の数と利用可能な実際の値の間の不一致を示す「ValueError」例外が発生する可能性があります。この問題はさまざまな理由で発生する可能性がありますが、次の 2 つの一般的なシナリオが関係します。
1.不十分な値:
問題: 入力ファイル内の行に ':' 文字がない場合、split() は 2 つの期待値ではなく 1 つの項目を返します。
解決策: 入力ファイルの最後の行が空 (空白のみを含む) かどうかを確認し、そのような場合はそれに応じて処理します。 Split() 関数が正しく動作するには、各行に「:」文字が含まれていることを確認してください。
2.過剰な値:
問題: 逆に、1 行に 3 つ以上の ':' 文字がある場合、split() は予想より多くの値を返します。
解決策: 分割を試みる前に、予備チェックを実行して、各行に ':' 文字が 1 つだけ含まれていることを確認します。 ':' が含まれない行、または 1 つ以上の ':' を含む行は、フィルタで除外するか、別の方法で処理する必要があります。
例:
次のコードを考えてみましょう:
with open('qanda.txt', 'r') as qanda_file: for line in qanda_file: if ':' in line: question, answer = line.strip().split(':') # Process question and answer
このコードは、各行に「:」が存在するかどうかをチェックし、単一の「:」文字で行を分割するだけで、値の欠落または過剰による「ValueError」例外の発生を防ぎます。
以上がPython で質問と回答のペアを分割するときに ValueError が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。