Python 3でリストを条件に基づいて分割する方法
Pythonは、リストを操作するための強力な機能を提供しており、特定の条件に基づいてリストを分割することも簡単にできます。この記事では、Python 3を使用してリストを条件に基づいて分割する方法を説明し、具体的なコード例を示します。
基本的なリストの分割方法
リストを条件に基づいて分割する基本的な方法は、リスト内包表記を使用することです。以下の例では、数値のリストを偶数と奇数に分割します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = [num for num in numbers if num % 2 == 0] odd_numbers = [num for num in numbers if num % 2 != 0] print("Even numbers:", even_numbers) print("Odd numbers:", odd_numbers)
このコードは、`numbers`リストを走査し、各要素が偶数か奇数かを判定して、`even_numbers`と`odd_numbers`のリストに分割します。
条件による文字列リストの分割
文字列のリストを特定の条件で分割することも可能です。次の例では、文字列の長さを基準にしてリストを分割します。
words = ["apple", "banana", "cherry", "date", "fig", "grape"] short_words = [word for word in words if len(word) <= 5] long_words = [word for word in words if len(word) > 5] print("Short words:", short_words) print("Long words:", long_words)
この例では、文字列の長さが5以下のものを`short_words`リストに、それ以外を`long_words`リストに分割しています。
複雑な条件による分割
複雑な条件でリストを分割することも可能です。以下の例では、数値のリストを3つのカテゴリーに分割しています。
numbers = [1, 15, 22, 33, 47, 58, 63, 74, 85, 96] low_numbers = [num for num in numbers if num < 30] mid_numbers = [num for num in numbers if 30 <= num < 60] high_numbers = [num for num in numbers if num >= 60] print("Low numbers:", low_numbers) print("Mid numbers:", mid_numbers) print("High numbers:", high_numbers)
この例では、30未満の数値を`low_numbers`に、30以上60未満を`mid_numbers`に、60以上を`high_numbers`に分割しています。
関数を使ったリストの分割
リストの分割をより柔軟にするために、関数を使用することもできます。以下の例では、条件を関数として定義し、それを用いてリストを分割します。
def is_vowel(char): return char.lower() in 'aeiou' characters = ['a', 'b', 'c', 'e', 'i', 'o', 'u', 'x', 'y', 'z'] vowels = [char for char in characters if is_vowel(char)] consonants = [char for char in characters if not is_vowel(char)] print("Vowels:", vowels) print("Consonants:", consonants)
この例では、`is_vowel`関数を使用して、文字が母音かどうかを判定し、母音と子音に分割しています。
まとめ
Python 3では、リストを条件に基づいて分割する方法は非常にシンプルで、リスト内包表記や関数を使用することで柔軟な分割が可能です。これらの方法を使うことで、データの整理や分析を効率的に行うことができます。
Python 3では、条件に基づいてリストを分割する方法として、リスト内包表記を使用することが一般的です。条件に基づいてリストを分割する場合、以下のようなコードを使用することができます:
“`python
original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 条件に基づいてリストを分割する
even_numbers = [x for x in original_list if x % 2 == 0]
odd_numbers = [x for x in original_list if x % 2 != 0]print(“偶数リスト:”, even_numbers)
print(“奇数リスト:”, odd_numbers)
“`上記のコードでは、元のリストから偶数と奇数を分割して新しいリストを作成しています。リスト内包表記を使用することで、簡潔かつ効率的に条件に基づいてリストを分割することができます。