Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストから1桁の要素を抽出する方法

リストの中から1桁の要素だけを抽出したい場合、リスト内包表記all()関数を組み合わせると簡潔に実現できます。

以下に具体的なサンプルコードと実行例を示します。

サンプルコード

my_list = [863, 1, 463, "pyt", 782, 241, "is", 639, 4, "fun"]

print("The list is :")
print(my_list)

my_result = [index for index in my_list if all(str(element) == str(index)[0] for element in str(index))]

print("The result is :")
print(my_result)

実行結果

The list is :
[863, 1, 463, 'pyt', 782, 241, 'is', 639, 4, 'fun']
The result is :
[1, 4]

コードの解説

  • まず、整数と文字列が混在するリストを定義し、コンソールに表示します。

  • リスト内包表記を使ってリストの各要素を順番に走査します。各要素は str() で文字列に変換され、そのすべての文字(桁)が先頭の文字と一致するかどうかを all() 関数で判定します。

  • この条件を満たすのは、すべての桁が同じ数字で構成されている要素です。たとえば「111」のような値も該当しますが、この例では1桁の「1」と「4」のみがマッチします。

  • 条件を満たした要素だけが集められ、新しいリストとして変数 my_result に代入されます。

  • 最後に、抽出結果をコンソールに出力しています。

このように、リスト内包表記と all() を組み合わせることで、複雑な条件によるフィルタリングを短いコードで美しく記述できます。

  1. 【Python入門】リストから奇数を取り出して出力する3つの方法

    本記事では、リストに含まれる奇数を出力するPythonプログラムの書き方について、3つの異なるアプローチを交えながら詳しく解説します。 問題定義 リスト形式のイテラブル(反復可能オブジェクト)が入力として与えられたとき、その中に含まれる奇数だけを抽出して表示するプログラムを作成します。 ここでは、以下の3つの方法を使ってこの問題を解いていきます。 拡張forループを使う方法 lambda式とfilter関数を使う方法 リスト内包表記を使う方法 方法1:拡張forループを使用する 最も基本的な方法は、forループでリストの各要素を順番に取り出し、剰余演算子%を使って2で割った余りが0以外(つ

  2. Pythonでリストのすべてのサブリストを生成して出力する方法

    リストが与えられたとき、そのリストに含まれるすべてのサブリスト(部分リスト)を生成して出力するプログラムを紹介します。要素数 n のリストの場合、空のリストを含めるとサブリストの総数は n×(n+1)/2+1 個になります。 実行例 入力 : list = [1, 2, 3] 出力 : [], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] アルゴリズム 考え方はシンプルです。開始位置 i と終了位置 j の組み合わせをすべて試し、スライスで部分リストを取り出します。 ステップ1 : 対象となるリストを用意します。 ステップ2 : 結果を格納するため、最