行分割での複数の値のアンパック エラー
split() メソッドを使用してテキスト行を複数の変数に分割すると、次のような問題が発生する可能性があります。解凍するには値が少なすぎるか多すぎることを示す ValueError。これは、分割操作で期待される値の数が割り当てられた変数の数と一致しない場合に発生します。
発生理由
split() メソッドは入力を分割します。文字列を、指定された区切り文字に基づいて部分文字列のリストに変換します。区切り文字の数が必要な数よりも少ない場合、予想される数よりも少ない値が返されます。逆に、区切り文字が予想よりも多い場合、分割操作により割り当てられる変数よりも多くの値が生成されます。
一般的な原因: 空行
一般的な理由このエラーの原因は、入力ファイルの末尾に空行があることです。分割前にstrip()メソッドを使用して空白を削除すると、空の行は空の文字列に変換されます。区切り文字で空の文字列を分割すると、空のリストが作成されます。
修正または回避策
この問題を解決するには、次の手順に従います。
条件付き分割: 条件付きチェックを使用して、区切り文字なしで行が分割されるのを防ぎます。たとえば、分割操作の前に次の行を追加できます。
if ':' in line: questions, answers = line.split(':')
この条件により、コロンを含む行のみが分割されます。
以上が行を変数に分割すると複数値のアンパック エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。