-
Pythonで2つの連結リストの対応する位置の要素を加算する方法
2つの連結リスト(リンクリスト)の対応する位置にある要素同士を加算したい場合、「連結リストへ要素を追加するメソッド」「連結リストの内容を表示するメソッド」「対応する位置の要素を加算する関数」の3つを定義します。その後、連結リストのインスタンスを2つ生成し、それぞれにデータを格納したうえで、加算用の関数を呼び出すという流れになります。 以下に具体的な実装例と実行結果を示します。 サンプルコード class Node: def __init__(self, data): self.data = data self.next = None class Lin
-
2つの連結リストから最初に共通する要素を見つけるPythonプログラム
2つの連結リスト(リンクリスト)の間で、最初に共通して現れる要素を求めたい場面はよくあります。本記事では、連結リストへ要素を追加するメソッドと、2つの連結リストの中で最初に共通する要素を取得するメソッドを定義する方法を紹介します。 以下に具体的な実装例を示します。 サンプルコード class Node: def __init__(self, data): self.data = data &n
-
連結リスト内のすべての要素の出現回数を求めるPythonプログラム
連結リスト(リンクリスト)内の各要素が何回出現するかを調べたい場合、要素を連結リストに追加するメソッド、要素を表示するメソッド、そして全要素の出現回数をカウントするメソッドを定義します。以下にその実装例を示します。サンプルコードclass Node: def __init__(self, data): self.data = data self.next = No
-
Pythonで連結リストの先頭N個の要素だけを反転するプログラム
連結リスト(リンクリスト)の中から、指定した範囲の要素だけを反転したい場面はよくあります。本記事では、reverse_list というメソッドを定義し、リストを走査しながら先頭のN個の要素のみを逆順に並べ替える方法を解説します。 それでは、実際のコード例を見ていきましょう。 サンプルコード class Node: def __init__(self, data): self.data = data self.next = None class LinkedList_structure: def __init__(self): s
-
連結リスト(リンクリスト)の中央ノードを出力するPythonプログラム
連結リスト(リンクリスト)の中央に位置する要素を出力したい場合、「print_middle_val」という名前のメソッドを定義します。このメソッドは連結リストを引数として受け取り、その中央の要素を取得して表示します。以下に実際の実装例を示します。サンプルコードclass Node: def __init__(self, data): self.data = data self.next = None class LinkedList_structure: def __init__(self): self.head = None
-
Pythonで連結リストの末尾からN番目のノードを取得・表示する方法
連結リスト(リンクリスト)の末尾から特定の位置にあるノードを取得して表示したい場合、「list_length」関数と「return_from_end」関数を定義するアプローチが効果的です。 「list_length」関数は、連結リスト全体の長さ(ノード数)を計算して返します。 一方、「return_from_end」関数は、この長さ情報をもとに、連結リストの末尾からn番目の要素を返す役割を担います。 以下に具体的な実装例を示します。 サンプルコード class Node: def __init__(self, data): self.data = data
-
【Python】タプルのリスト内の要素をfloat型に変換する方法
タプルのリスト内の要素をfloat値に変換したい場合、isalpha() メソッドを使うと、その要素がアルファベット(文字列)かどうかを簡単に判別できます。そして、数値として扱える要素だけを float() 関数で浮動小数点数に変換するという流れになります。 このアプローチにより、「45」のような数字の文字列はfloat型に変換されつつ、「Jane」のような名前などの文字列はそのまま保持できます。以下に具体的な実装例を示します。 サンプルコード my_list = [("45", "Jane"), ("11", "Will
-
スタックデータ構造を使って文字列が回文かどうかを判定するPythonプログラム
スタックデータ構造を利用して文字列が回文(パリンドローム)かどうかを判定するには、まずスタッククラスを作成し、値の追加と削除を行うための「push」と「pop」メソッドを定義します。さらに、スタックが空かどうかを確認するメソッドも用意します。以下にその実装例を示します。サンプルコードclass Stack_structure: def __init__(self): self.items = [] de
-
Pythonでタプルのリストを合計桁数に基づいて並べ替える方法
Pythonでは、タプルのリスト内の要素を「各要素の桁数の合計」に基づいて並べ替えたい場合、組み込みの sorted メソッドと lambda(ラムダ)関数を組み合わせることで、シンプルかつ効率的に実現できます。 以下に具体的な実装例を示します。 サンプルコード my_list = [(11, 23, 45, 678), (34, 67), (653,), (78, 99, 23, 45), (67, 43)] print(The list is : ) print(my_list) my_result = sorted(my_list, key = lambda tup : sum([l
-
【Python】リストからn番目に小さい要素を線形時間で選択するプログラムの書き方
はじめに線形時間計算量 O(n) でリストから n 番目に小さい要素を選択するには、大きく分けて2つの処理が必要になります。ひとつはピボット(基準値)を決めてリストを分割する「パーティション」処理、もうひとつはその結果をもとに目的の要素を再帰的に絞り込んでいく「選択」処理です。リストの分割は、ユーザーが指定した「i」の値に基づいて行われます。この値とピボット位置との大小関係を比較することで、探索範囲を左半分か右半分のどちらかに限定でき、不要な計算を省けます。この手法は「クイックセレクト」と呼ばれるアルゴリズムで、平均計算量は O(n) となるのが特徴です。以下に実際の実装例を示します。サンプル
-
Boto3を使ってAWS Glueデータカタログからテーブル定義を取得する方法
この記事では、AWS Glueデータカタログから、データベース内のすべてのテーブル、あるいは正規表現に一致する一部のテーブルの定義を取得する方法を解説します。実行例データベース 「QA-test」 内のすべてのテーブル、およびテーブル 「security」 と 「employee」 のテーブル定義を取得してみましょう。アプローチとアルゴリズムステップ1: 例外処理のために boto3 および botocore の例外モジュールをインポートします。ステップ2: database_name は必須パラメータですが、regular_expression_for_table_name(テーブル名の正規
-
Boto3を使ってAWS Glue Data Catalogからトリガーの詳細情報を取得する方法
この記事では、Pythonのboto3ライブラリを使用して、AWS Glue Data Catalogに登録されているトリガー(Trigger)の詳細情報を取得する方法を解説します。 例 自分のアカウントで利用可能なトリガーのうち、「01_PythonShellTest1」という名前のトリガーの詳細情報を取得してみましょう。 問題を解決するためのアプローチとアルゴリズム ステップ1: 例外処理のために、boto3およびbotocoreの例外モジュールをインポートします。 ステップ2: この関数の必須パラメータはtrigger_nameです。指定されたトリガー名に対応する詳細情報をユーザーアカ
-
Boto3を使ってAWS Glue Data Catalogからジョブに関連付けられたすべてのトリガーの詳細を取得する方法
本記事では、AWS Glue Data Catalogからジョブに関連付けられたすべてのトリガーの詳細情報を取得する方法について解説します。例ジョブ employee_details に関連付けられたすべてのトリガーの詳細を取得するケースを見ていきましょう。課題: Pythonの boto3 ライブラリを使用して、特定のジョブに関連付けられたすべてのトリガーの詳細情報を取得すること。解決のための手順・アルゴリズムステップ1: 例外処理のために boto3 および botocore の例外モジュールをインポートします。ステップ2: job_name はこの関数のオプションパラメータです。job_
-
Boto3を使ってAWS Glueデータカタログからユーザー定義関数の詳細を取得する方法
この記事では、AWS Glueデータカタログから指定したユーザー定義関数(UDF)の定義情報を取得する方法を解説します。例データベース employee 内にある insert_employee_record という名前の関数定義の詳細を取得します。課題: Pythonの boto3 ライブラリを使用して、AWS Glueデータカタログから指定された関数定義の詳細を取得することです。解決のためのアプローチ/アルゴリズムステップ1: 例外を処理するために boto3 および botocore の例外モジュールをインポートします。ステップ2: 必須パラメータは database_name と fu
-
Boto3を使ってAWS Glue Data Catalogから複数の関数定義の詳細を取得する方法
この記事では、AWS Glue Data Catalogから複数の関数定義の詳細情報を取得する方法を解説します。 例題 課題: Pythonのboto3ライブラリを使用して、AWS Glue Data Catalog内のデータベースに存在する複数のユーザー定義関数の詳細情報を取得します。 解決のためのアプローチとアルゴリズム ステップ1: 例外処理を行うために、boto3とbotocoreの例外モジュールをインポートします。 ステップ2: database_name(データベース名)とregular_pattern(正規表現パターン)はどちらも任意のパラメータです。両方とも指定しない場合、
-
Pythonでリストからn番目に大きい要素を線形時間で選択するプログラム
リストから線形時間計算量 O(n) で n 番目に大きい要素を選択するには、主に2つの処理が必要になります。ピボットを基準にリストを2つの部分に分割する「パーティション」処理分割された部分の中から目的の要素を再帰的に絞り込んでいく「選択」処理この手法は、クイックソートの考え方を応用した Quickselect(クイックセレクト)アルゴリズム として知られています。ユーザーが指定した「i」の値に基づいてリストを分割し、そのたびに探索範囲を半分以下に狭めていくことで、全体をソートせずに効率よく目的の要素を見つけられます。サンプルコードdef select_largest(my_list, beg,
-
再帰を使ってスタックを逆順に反転するPythonプログラム
再帰(リカージョン)を使用してスタック(Stack)データ構造を反転させたい場合、値の追加・削除・要素の表示を行う基本メソッドに加え、反転処理を担当する stack_reverse メソッドを定義します。 本記事では、その実装方法と動作の仕組みを、実際のコード例と実行結果とともにわかりやすく解説します。 サンプルコード class Stack_structure: def __init__(self): self.items = [] def check_empty(self): return self.items == [] def
-
Pythonで1つのキューを使ってスタックを実装する方法
1つのキューだけを使ってスタック(LIFO:後入れ先出し)を実装するには、「Stack_structure」クラスと、その内部で利用する「Queue_structure」クラスの2つを用意します。それぞれのクラスに、値を追加・削除するためのメソッドを定義していきます。キューは先入れ先出し(FIFO)という特性を持つため、pop操作の際には「最後に入れた要素以外を一度取り出して、再びキューの末尾へ戻す」という並べ替え処理が必要になる点がポイントです。以下に具体的な実装例を示します。サンプルコードclass Stack_structure: def __init__(self):
-
Pythonで2つのキューを使ってスタックを実装する方法
2つのキューを使用してスタックを実装するには、「Stack_structure」クラスと「Queue_structure」クラスが必要です。それぞれのクラスには、スタックおよびキューに対して値を追加・削除するためのメソッドが定義されています。この手法では、push操作のたびに新しい要素をqueue_1に追加し、queue_2内の既存要素をすべてその後ろへ移動させてから2つのキューを入れ替えることで、キューでありながらスタック特有のLIFO(後入れ先出し)の動作を実現しています。以下に具体的な実装例を示します。サンプルコードclass Stack_structure: &
-
Pythonでスタックを使ってキュー(Queue)を実装する方法【コード例付き】
スタック(Stack)を使ってキュー(Queue)を実装したい場合は、キュー専用のクラスを定義し、その中に2つのスタックインスタンスを持たせるのが一般的な手法です。このクラス内に各操作をメソッドとして定義することで、キューに対してさまざまな操作を柔軟に行えるようになります。以下に、実際の実装例とその動作を示します。サンプルコードclass Queue_structure: def __init__(self): self.in_val = Stack_structure() self.