Python – 混合行列から文字列要素を抽出する方法
混合行列(整数や文字列など、異なる型の要素が混在するネストされたリスト)から文字列要素だけを抽出したい場合、リスト内包表記と「isinstance」メソッドを組み合わせると、簡潔かつ効率的に実現できます。
サンプルコード
以下に具体的な実装例を示します。
my_list = [[35, 66, 31], ["python", 13, "is"], [15, "fun", 14]]
print("元のリスト:")
print(my_list)
my_result = [element for index in my_list for element in index if isinstance(element, str)]
print("抽出結果:")
print(my_result)出力結果
元のリスト: [[35, 66, 31], ['python', 13, 'is'], [15, 'fun', 14]] 抽出結果: ['python', 'is', 'fun']
解説
- まず、複数のリストを含む二次元リスト(リストのリスト)を定義し、コンソールに表示します。このリストには整数と文字列が混在しています。
- 次に、リスト内包表記を使用して、外側のリストおよび内側の各リストの要素を順番に反復処理します。
- 条件部分では、「isinstance」メソッドを使って各要素が文字列型(str)であるかどうかを判定します。isinstance(要素, 型) の形式で呼び出し、指定した型に一致すれば True を返します。
- 判定が True となった要素のみが新しいリストに格納され、変数 my_result に代入されます。
- 最後に、文字列要素だけが集められたリストをコンソールに出力します。
補足
この手法は、データクレンジングやテキストデータの前処理など、型ごとに要素を振り分けたい場面で非常に便利です。なお、isinstance の代わりに type(element) == str と比較する方法もありますが、isinstance はサブクラスも正しく判定できるため、一般的により推奨される書き方です。
-
Pythonで文字列とリストを組み合わせてタプルを作成する方法
Pythonでは、文字列とリストを組み合わせてタプルを作成したい場合、tuple()メソッドを使うことで簡単に実現できます。リストは異種の値(整数、浮動小数点数、文字列など、さまざまなデータ型のデータ)を格納できる便利なデータ構造です。タプルも同様に複数の値を保持できますが、イミュータブル(変更不可)である点が特徴です。以下に、リストと文字列からタプルを作成する具体的な例を示します。サンプルコードmy_list_1 = [Hey, there, How, are, you] my_list_2 = Jane print(最初のリストは:) print(my_list_1) print(文字
-
Pythonの正規表現を使って文字列から数値を抽出する方法
正規表現モジュールを使った抽出方法Pythonで文字列から数値を抽出する場合、標準ライブラリのreモジュール(正規表現モジュール)を使うのが最も高速で効率的な方法です。まずはモジュールをインポートします。>>> import reサンプル文字列の準備ここでは、整数と浮動小数点数が混在した以下のような文字列を例に考えてみましょう。>>> s = my age is 25. I have 55.50 percent marks and 9764135408 is my numberfindall()関数で数値を抽出するfindall()関数は、指定したパターンに