コース: Python:ヒントとテクニック

今すぐコースを受講しましょう

今すぐ登録して、23,500件以上登録されている、業界エキスパート指導のコースを受講しましょう。

zip()とzip_longest()の違いを知る

zip()とzip_longest()の違いを知る - Pythonのチュートリアル

コース: Python:ヒントとテクニック

zip()とzip_longest()の違いを知る

zip 関数は 使ったことがあると思いますが、 zip_longest 関数は どうですか。 両者の違いを見ていきましょう。 zip 関数は、 複数のイテラブルオブジェクトから、 値を取得します。 zip.py を見てください。 このように、県名のリストと 県庁のある市のリストがあります。 この2つのリストから、 次のように出力したいわけです。 富山県の県庁は、富山市にあります。 石川県の県庁は、金沢市にあります。 福井県の県庁は、 福井市にあります。 zip 関数には、 複数のリストを指定することができます。 そして、要素をひとつひとつ 同時に取得することができます。 取得した要素を文字列として 結合して、出力します。 実行してみましょう。 そうすると、期待どおりに、 何々県の県庁は何々市にありますという 文字列が出力されました。 では、2つのイテラブルオブジェクトの 要素の数が違うときは、どうでしょう。 県名は、4つあります。 岐阜県を追加しました。 県庁のある市は、 富山市、金沢市、福井市の3つのままです。 この状態で、実行してみます。 3行の文字列が出力されました。 岐阜県については、 出力されていません。 2つのイテラブルオブジェクトの 要素数が違うとき、 zip 関数は、少ないほうの イテラブルオブジェクトに合わせます。 多いほうに合わせたいときは、 zip_longest 関数を使います。 それにはまず、 itertools から、 zip_longest 関数を import してやる必要があります。 そして、zip 関数に代わって、 zip_longest 関数を使います。 実行してみましょう。 出力される文字列は、 4行になりました。 岐阜県の県庁は、 None にありますとなっています。 県名に対応する市の名前がないので、 None という値が返ってきています。 例えば、None という値では 困る場合、 fillvalue で 値を指定することができます。 例えば、unknown という 文字列を指定してやれば、 指定した文字が出力されます。 数の足りない部分には、 unknown が補填されるわけです。 zip 関数は、 いきなり使うことができますが、 zip_longest 関数は import して使うんだということを…

目次