Pythonでリストを扱う際、コードをより効率的で読みやすくするための便利なテクニックがいくつか存在します。この記事では、その中でも特に役立つ**in
/ not in
演算子と複数代入**という2つの機能について解説します。
in
とnot in
演算子でリストの要素を調べる
リストの中に特定の要素が存在するかどうかを確認したい、という場面は非常に多くあります。そのような場合に活躍するのがin
とnot in
演算子です。
in
: リスト内に指定した要素が存在すればTrue
を、存在しなければFalse
を返します。not in
:in
の逆で、リスト内に指定した要素が存在しなければTrue
を、存在すればFalse
を返します。
if
文と組み合わせることで、特定の条件分岐を簡単に記述できます。
# 申請に必要な書類のリスト
required_docs = ["application_form", "id_card", "proof_of_address"]
print("提出した書類名を入力してください:")
submitted_doc = input()
# 提出された書類がリストに含まれていないかチェック
if submitted_doc not in required_docs:
print(f"エラー: 「{submitted_doc}」は必要な書類ではありません。")
else:
print(f"「{submitted_doc}」を受け付けました。")
このコードは、入力された書類名がrequired_docs
リストに含まれているかどうかをnot in
演算子でチェックし、結果に応じて異なるメッセージを表示します。for
ループでリストの要素を一つずつ確認するようなコードを書く必要がなくなり、非常にシンプルになります。
複数代入
リストの各要素を、それぞれ別の変数に代入したい場合、通常はインデックスを使って一つずつ取り出します。
# ユーザー情報 [名前, 年齢, 都市]
user_data = ["Taro Yamada", 30, "Tokyo"]
# 一つずつ変数に代入
name = user_data[0]
age = user_data[1]
city = user_data[2]
print(f"名前: {name}")
この方法は確実ですが、リストの要素数が多くなると記述が長くなります。Pythonでは、これを一行で簡潔に書くための複数代入というショートカットが用意されています。
user_data = ["Taro Yamada", 30, "Tokyo"]
# 複数代入を使って一行で代入
name, age, city = user_data
print(f"年齢: {age}")
print(f"都市: {city}")
=
の左辺に変数をカンマで区切って並べることで、リストの要素が先頭から順番に各変数へ代入されます。
注意点: この方法を使うには、左辺の変数の数と、右辺のリストの要素数が完全に一致している必要があります。数が合わない場合はValueError
というエラーが発生します。
まとめ
今回は、リスト操作をより便利にする2つのテクニックを紹介しました。
in
/not in
演算子: リスト内の要素の存在確認を簡単に行うことができます。- 複数代入: リストの要素を複数の変数に一度に展開でき、コードを短くできます。
これらのテクニックを使いこなすことで、よりPythonらしい、効率的で読みやすいコードを書くことができます。ぜひ覚えて活用してください。