len()
関数を使用して値が入っていない(つまり、コレクションが空である)場合のチェックは、シンプルな使用法から複雑なロジックに至るまで様々なシチュエーションで役立ちます。
特に、データ構造の内容に基づいて条件分岐を行う場合や、複数のコレクション間での比較、または入れ子になったデータ構造の処理において、len()
の使用はより複雑になり得ます。
以下に複雑なシチュエーションの例をいくつか紹介します。
1. 入れ子になったコレクションの要素の有無のチェック
入れ子になったリストや辞書のようなコレクションで、特定の深さにある要素が存在するかどうかをチェックする場合にlen()
を使用します。
nested_list = [[1, 2, 3], [], [4, 5]]
empty_lists = 0
for sublist in nested_list:
if len(sublist) == 0:
empty_lists += 1
print(f"空のリストの数: {empty_lists}")
2.辞書内の特定のキーに対する値のリストの長さをチェック
辞書内にリストや他のコレクションを値として持つ場合、特定のキーに対応する値の長さをチェックして、それに応じた処理を行うことがあります。
data = {
"users": ["Tanaka", "Suzuki", "Itou"],
"admins": ["Satou"],
"moderators": []
}
# 各カテゴリにユーザーが存在するかチェック
for key in data:
if len(data[key]) == 0:
print(f"{key}にはユーザーが存在しません。")
else:
print(f"{key}のユーザー数: {len(data[key])}")
以上のようにlen()関数で値がない場合方法でした。
len()関数は値が何個あるかのような使い方の方が一般的と思われます。
そちらの方も解説をしていきます。