【Python入門】リストから指定した数値の倍数だけを抽出して出力する方法
Pythonでは、あるリストの中から「指定した複数の数値の倍数」に該当する要素だけを取り出したい場面があります。そんなとき、リスト内包表記を組み合わせれば、わずか1行で簡潔に実装できます。
サンプルコード
以下は、リスト内包表記と all() 関数を使って、割り切れる要素のみを抽出する例です。
my_list = [45, 67, 89, 90, 10, 98, 10, 12, 23]
print("元のリスト:")
print(my_list)
my_division_list = [6, 4]
print("割り算に使う数値のリスト:")
print(my_division_list)
my_result = [element for element in my_list if all(element % j == 0 for j in my_division_list)]
print("結果:")
print(my_result)
実行結果
元のリスト: [45, 67, 89, 90, 10, 98, 10, 12, 23] 割り算に使う数値のリスト: [6, 4] 結果: [12]
コードの解説
まず、対象となる整数のリスト
my_listを定義し、コンソールに表示します。次に、倍数判定の基準となる整数リスト
my_division_list(この例では [6, 4])を定義します。リスト内包表記を使って各要素を順番に取り出し、
all()関数で「基準リスト内のすべての数値で割ったときの余りが0になるか」を判定します。条件を満たす要素だけが新しいリストに格納され、変数
my_resultに代入されます。最後に、その結果をコンソールに出力します。
この例の場合、6でも4でも割り切れる唯一の要素が 12 であるため、出力は [12] となります。もし「いずれか一方で割り切れればよい」という条件にしたい場合は、all() を any() に置き換えるだけで対応できます。
-
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 : 結果を格納するため、最
-
Pythonで整数配列の重複を除去し、個別の要素だけを出力する方法
整数型の配列が与えられ、その中には重複した要素が含まれている場合があります。この記事では、重複を取り除いて個別(ユニーク)な値だけを出力するPythonプログラムを解説します。 実行例 入力:A = [1, 2, 3, 4, 2, 3, 5, 6] 出力:[1, 2, 3, 4, 5, 6] アルゴリズム このプログラムは次の手順で動作します。 配列の要素を入力として受け取ります。 各要素を先頭から順番に1つずつ取り出します。 取り出した要素が、それ以前にすでに出力されたものかどうかを確認します。 初期値0のフラグ変数を用意し、すでに表示済みなら1、未表示なら0のままにします。 フラ