-
Pythonでタプルのリストから指定した桁数の要素を抽出する方法
タプルのリストの中から、特定の桁数を持つ要素だけを抽出したいケースは意外と多くあります。そんなときは、リスト内包表記を使うことで、簡潔かつ効率的に処理を実装できます。 以下に具体的な実装例を示します。 サンプルコード my_list = [(67, 2), (34, 65), (212, 23), (17, 67), (18, )] print("The list is : ") print(my_list) N = 2 print("The value of N is ") print(N) my_result = [sub for sub in
-
Pythonで2つのタプル間のすべてのペア組み合わせを求める方法
はじめにPythonでは、2つのタプル(シーケンス)からすべてのペアの組み合わせを求めたい場面があります。そのような場合、標準ライブラリ itertools の product() 関数とリスト内包表記を組み合わせることで、簡潔かつ効率的に実装できます。以下に、その実装例を示します。サンプルコードfrom itertools import product N = 2 print(N の値を初期化しました:) print(N) my_result = [ele for ele in product(range(1, N + 1), repeat = N)] print(2 までのすべてのタ
-
Pythonで特定の長さKのタプルをリストから削除する方法
はじめにPythonで、特定の長さ「K」を持つタプルをリストから取り除きたい場合、リスト内包表記(list comprehension)を使うと非常に簡潔に実現できます。本記事では、その具体的な方法をサンプルコードとともに分かりやすく解説します。実装例my_list = [(32, 51), (22, 13), (94, 65, 77), (70, ), (80, 61, 13, 17)] print(The list is : ) print(my_list) K = 1 print(The value of K is ) print(K) my_result = [ele for el
-
外部リストの順序に従ってタプルを並べ替えるPythonプログラム
外部リストで指定した順序に従ってタプルのリストを並べ替えたい場合、リスト内包表記とdict()関数を組み合わせることで、簡潔かつ効率的に実現できます。 以下に具体的な実装例を示します。 サンプルコード my_list = [(Mark, 34), (Will, 91), (Rob, 23)] print(The list of tuple is : ) print(my_list) ordered_list = [Will, Mark, Rob] print(The ordered list is :) print(ordered_list) temp = dict(my_list) my
-
Pythonでネストしたタプルをフラット化して1つのタプルに変換する方法
Pythonでは、入れ子になった(ネストした)タプルを、1つの平坦なタプルへ変換したい場面があります。これを実現するには、タプルを引数として受け取るメソッドを定義し、その中で要素を再帰的に処理するのが一般的です。具体的には、タプルの各要素を順に走査し、ネストがなくなるまで同じメソッドを繰り返し呼び出すことで、フラット化された結果を得ることができます。サンプルコードdef flatten_tuple(my_tuple): if isinstance(my_tuple, tuple) and len(my_tuple) == 2 and not isinstance(my_tuple[0
-
Pythonでネストされたタプルをカスタムキー付きの辞書に変換する方法
ネストされたタプル(タプルの中にタプルが入った構造)を、カスタマイズしたキーを持つ辞書に変換したい場合、リスト内包表記を使うと簡潔に実装できます。以下に具体的な実装例を示します。サンプルコードmy_tuple = ((6, Will, 13), (2, Mark, 15), (9, Rob, 12)) print(元のタプル : ) print(my_tuple) my_result = [{key: sub[0], value: sub[1], id: sub[2]} for sub in my_tuple] print(変換後の辞書 : ) print(my_result)出
-
【Python】ループを使わずに1から指定した上限までの数値を出力する方法
Pythonでは、for文やwhile文などのループ構文を使用せずに、指定した範囲内の数値を出力することが可能です。その鍵となるのが再帰(リカージョン)です。具体的には、数値を出力するたびに引数を1ずつ減らしながら自分自身を呼び出すメソッドを定義することで、ループと同等の処理を実現します。以下に、実際の動作例を示します。サンプルコードdef print_nums(upper_num): if(upper_num>0): print_nums(upper_num-1) print(upper_num) upper_lim = 6 print(The
-
Pythonでオイラー数eを計算する方法|e = 1 + 1/1! + 1/2! + … + 1/n! を使った実装
オイラー数(ネイピア数)eは、数学において最も重要な定数の一つです。本記事では、次の級数の式を用いてオイラー数の値を計算するPythonプログラムの実装方法を解説します。 e = 1 + 1/1! + 1/2! + 1/3! + …… + 1/n! この計算を実現するためには、まず与えられた数の階乗を求める関数を定義し、続いてそれらの階乗の逆数の総和を計算する関数を定義します。以下に具体的な実装例を示します。 サンプルコード def factorial_result(n): result = 1 for i in range(2, n + 1): result
-
指定した範囲内のピタゴラス数(三つ組)をすべて求めるPythonプログラム
指定された範囲内に存在するピタゴラス数(ピタゴラスの三つ組)をすべて求めたい場合、三つ組の値を計算するための専用メソッドを定義しておくと便利です。ここでは、ユークリッドの公式(a = m² − n²、b = 2mn、c = m² + n²)を利用して、効率よくピタゴラス数を生成する方法を紹介します。サンプルコードdef pythagorean_triplets(limits) : c, m = 0, 2 while c < limits : for n in range(1, m) : a = m * m - n * n
-
Pythonでリスト内の特定の数値の出現回数をカウントする方法
リストの中に特定の数値が何回出現するかを調べたい場合、リストと対象の数値を引数として受け取る関数を定義します。この関数はリストを先頭から順に走査し、対象の数値と一致する要素が見つかるたびにカウンターを1ずつ加算していきます。 以下に具体的な実装例を示します。 サンプルコード def count_num(my_list, x_val): my_counter = 0 for elem in my_list: if (elem == x_val): my_counter = my_counter + 1 return my_count
-
【Python入門】数値の右端にあるセットビットをクリアする方法
はじめにビット演算は、プログラミングにおいて効率的な処理を実現するための重要なテクニックの一つです。本記事では、Pythonを使って「数値の右端にセットされているビット(1になっているビット)をクリア(0に戻す)する方法」を解説します。この操作には、ビットごとの論理積を求める「&」演算子を使用します。ポイントは、元の数値から1を引いた値との間でAND演算を行うことです。実装例以下のコードは、指定した整数の右端のセットビットをクリアする関数の実装例です。def clear_right_bit(my_val): return my_val & (my_val - 1) n
-
再帰を使ってグレイコードを生成するPythonプログラムの書き方
グレイコード(Gray Code)とは、隣り合う数値同士でビットが必ず1つだけしか変化しない特別な二進数表記のことです。デジタル回路設計やエラー検出、位置センサーなど、さまざまな分野で活用されています。Pythonで再帰的な考え方を利用してグレイコードを生成するには、まず空のリストを作成し、初期値として「0」と「1」を追加するメソッドを定義します。その後、関数内で複数の「for」ループを組み合わせることで、指定した桁数分のグレイコードを効率よく生成できます。サンプルコードimport math as mt def generate_gray_list(my_val): if (my_v
-
グレイコードをバイナリコードに変換するPythonプログラムの書き方
グレイコード(Gray code)は、隣接する数値間でビットが1つだけ変化するように設計された特殊な二進表現です。デジタル通信やエンコーダなど、誤差を最小限に抑えたい場面で活用されます。本記事では、Pythonを使ってグレイコードを通常のバイナリコードに変換する方法を解説します。変換の基本的な考え方は、先頭ビットはそのままコピーし、2番目以降の各ビットは「直前のバイナリ結果のビット」と「現在のグレイコードのビット」をXOR演算した値とするというものです。以下では、このロジックを実装したサンプルコードを紹介します。サンプルコードdef flip_num(my_nu): return 1
-
バイナリ数値をグレイコードに変換するPythonプログラムの実装方法
バイナリコード(2進数)をグレイコードに変換する必要がある場合、XOR(排他的論理和)演算を行う関数を定義するのが一般的な手法です。グレイコードは、隣接する値が1ビットだけ異なるという特徴を持つ符号体系で、デジタル回路やエラー検出などの分野で広く利用されています。以下に、その具体的な実装例を示します。サンプルコードdef binary_to_gray_op(n): n = int(n, 2) n ^= (n >> 1) return bin(n)[2:] gray_val = input(Enter the binary number: ) binary
-
【Python】ユーザーが指定した行数のパスカルの三角形を出力するプログラム
はじめにパスカルの三角形とは、二項係数をピラミッド状に並べた数の配列です。各行の両端は必ず1になり、内側の数はすぐ上の段にある左右の数を足した値になります。本記事では、ユーザーが入力した行数に応じてパスカルの三角形をコンソールに出力するPythonプログラムを紹介します。実装には、シンプルな「for」ループと、mathモジュールのfactorial(階乗)関数を使用します。サンプルコード以下にプログラムの実装例を示します。from math import factorial input = int(input(Enter the number of rows...)) for i in ra
-
Pythonで数値が完全数かどうかを判定するプログラム
「完全数(Perfect Number)」とは、その数自身を除くすべての正の約数の合計が、元の数と等しくなるような数のことです。たとえば、6 の正の約数は 1・2・3 であり、1 + 2 + 3 = 6 となるため、6 は完全数です。ほかにも 28(1 + 2 + 4 + 7 + 14)などが代表的な例として挙げられます。 ある数が完全数であるかどうかを判定するには、シンプルな for ループを使用するのが最も基本的な方法です。 以下にその実装例を示します。 サンプルコード n = 6 my_sum = 0 for i in range(1, n): if(n % i == 0):
-
Pythonで数がストロングナンバー(強い数)かどうかを判定するプログラム
ストロングナンバーとは?ストロングナンバー(強い数)とは、各桁の数字の階乗の合計が、その数そのものと等しくなる数のことです。ここでいう「階乗」とは、ある数以下のすべての正の整数を掛け合わせた値を指し、記号「!」で表されます。例えば、5の階乗は次のように計算します。5! = 5 × 4 × 3 × 2 × 1 = 120ある数がストロングナンバーかどうかを判定するには、剰余演算子(%)を使って各桁の数字を取り出し、whileループで階乗を求めていくのが一般的な方法です。サンプルコード以下に、実際の実装例を示します。my_sum = 0 my_num = 296 print(The number
-
Pythonでリストに格納された係数から多項式を計算するプログラム
多項式の係数がリスト形式で格納されている場合、その多項式の値を計算するには、シンプルな「for」ループを使用するのが基本です。以下に具体的な実装例を示します。実装例my_polynomial = [2, 5, 3, 0] num = 2 poly_len = len(my_polynomial) my_result = 0 for i in range(poly_len): my_sum = my_polynomial[i] for j in range(poly_len - i - 1): my_sum = my_sum * num my_result
-
Pythonで2つの数が友愛数(アミカブルナンバー)かどうかを判定する方法
友愛数(アミカブルナンバー)とは、互いに異なる2つの数のうち、それぞれの「真の約数」(その数自身を除く約数)の総和が、相手方の数とちょうど一致するような数のペアのことです。有名な例としては「220」と「284」の組み合わせが知られています。 2つの数が友愛数であるかどうかを判定するには、まず対象の数について約数の総和を求める関数を定義し、続いてその関数を呼び出して2つの数を比較する別の関数を定義します。約数の総和は、平方根までの範囲でループ処理を行い、剰余演算子(%)を使って割り切れるかを確認することで、効率的に計算できます。 以下に実際の実装例を示します。 サンプルコード import ma
-
Pythonで2つの物体間に働く重力を計算する方法
2つの物体の間に働く重力(万有引力)を求めたい場合、「find_gravity」という名前の関数を定義し、3つのパラメータを渡して呼び出すのが効果的です。この記事では、ニュートンの万有引力の法則に基づいて重力を計算するPythonプログラムを紹介します。 万有引力の法則とは 2つの物体間に働く重力は、次の公式で求めることができます。 F = G × m₁ × m₂ / r² F:物体間に働く重力(単位:N ニュートン) G:万有引力定数(約 6.673 × 10⁻¹¹ N·m²/kg²) m₁、m₂:それぞれの物体の質量(kg) r:2つの物体の重心間の距離(m) サンプルコード 以下は、