-
Pythonのヒープキュー(heapq)とは?基本の使い方をわかりやすく解説
ヒープキュー(ヒープ)とは、各親ノードがその子ノードと同じかそれより小さい値を持つという特殊な木構造のことです。Pythonでは、標準ライブラリのheapqモジュールを使って簡単に扱うことができます。ヒープキューは、優先度の高い項目を先に処理できる「優先度付きキュー」の実装に非常に役立ちます。 ヒープ操作のための主な関数 ヒープキューは、Pythonの組み込みライブラリheapqを使って作成・操作します。このライブラリには、ヒープデータ構造に対するさまざまな操作を行うための関数が用意されています。主な関数は以下の通りです。 heapify − 通常のリストをヒープに変換します。変換後は最小の
-
Python3の辞書(dict)の使い方を徹底解説!作成・アクセス・追加・更新・削除の基本
Pythonの辞書(dict)とはPythonの辞書(dictionary)は、キーと値を「key-valueペア」として対応付けるデータ構造の一つです。最も頻繁に使われるデータ構造のひとつで、柔軟で便利な性質を多数備えています。辞書は以下のように、波括弧({})で囲んで表現します。dict = {day1:Mon ,day2:Tue,day3:Wed}辞書内の各要素(キーと値のペア)は、キーと値をコロン(:)で区切って表現します。辞書の作成辞書は、キーと値のペアを波括弧の中に記述し、変数に代入するだけで簡単に作成できます。また、dict()メソッドを使って作成することも可能です。例Dict1
-
Google ColaboratoryでPythonコードを実行する方法を徹底解説
Google Colaboratory(通称:Colab)は、面倒なセットアップ不要でブラウザ上ですぐに使える、無料のクラウド型Jupyterノートブック環境です。Googleのクラウド上でホストされており、Pythonスクリプトをクラウド環境で実行・テストしたい開発者のためにGoogleが提供・運用しています。本記事では、Google Colaboratoryの環境を立ち上げてから、実際にPythonコードを記述・実行するまでの一連の手順を、初心者の方にもわかりやすく解説します。1. Pythonノートブックを開くまず、Google Colabの公式サイト(https://colab.res
-
Pythonで文字列内の単語を逆順に並べ替える方法
Pythonでは、split()メソッドとreversed()関数を組み合わせることで、文字列内のすべての単語を簡単に逆順にすることができます。この記事では、具体的な手順とサンプルコードを通じて、その実装方法を解説します。 やりたいこと まず、入力と出力のイメージをサンプルで確認しましょう。 入力: string = I am a python programmer 出力: programmer python a am I 別の例も見てみます。 入力: string = tutorialspoint is a educational website 出力: website educatio
-
Pythonで任意のキーを指定してタプルを昇順にソートする方法
このチュートリアルでは、Pythonを使ってタプルのリストを「n番目の要素」を基準に昇順へ並べ替える方法を解説します。 例えば、[(2, 2), (1, 2), (3, 1)] というタプルのリストがあるとします。ここで0番目の要素を基準にソートすると、出力は [(1, 2), (2, 2), (3, 1)] のようになります。 この処理には sorted 関数を使用します。sorted 関数にリストを渡す際、key 引数に関数を指定することで、どの要素を基準に並べ替えるかを制御できます。このkeyとして使うのが、ソートの基準となるインデックスです。 sorted 関数はリストを受け取り、昇順
-
【Python】文字列の長さに基づいてリストを並べ替える方法
文字列のリストがあり、その長さを基準にリストを並べ替えたいとします。つまり、短い文字列から長い文字列へと昇順に整列させる必要があります。これを実現するには、独自のアルゴリズムを書くか、Pythonの組み込みメソッドであるsort()や関数sorted()を、キー(key)引数と組み合わせて使用するのが便利です。実行例まず、どのような動作になるのか例で確認しましょう。入力: strings = [hafeez, aslan, honey, appi] 出力: [appi, aslan, honey, hafeez]それでは、sorted(key)関数とsort(key)メソッドを使ったプログラム
-
指定された文字から作成できる単語をすべて出力するPythonプログラム
このチュートリアルでは、与えられた文字のリストを使って作成できるすべての単語を見つけて出力する方法を解説します。まずはテストケースを通して、やりたいことを具体的にイメージしましょう。入力: words = [hi, hello, bye, good] characters = [h, i, b, y, e] 出力: hi byeこの例では、「hi」と「bye」は characters リストに含まれる文字だけで構成されているため出力されます。一方、「hello」には必要な「l」が2つあるのにリストには1つもなく、「good」に必要な「g」「o」「d」もリストに存在しないため、これらは出力され
-
3つの数値から最大値を見つけるPythonプログラム
このチュートリアルでは、3つの数値の中から最大値を求めるPythonプログラムを作成します。3つの数値が与えられたとき、その中で最も大きい数値を見つけることが目標です。まず、理解を深めるためにサンプルのテストケースをいくつか見てみましょう。入力: a, b, c = 2, 34, 4 出力: 34入力: a, b, c = 25, 3, 12 出力: 25入力: a, b, c = 5, 5, 5 出力: 5それでは、3つの数値の中から最大値を求める手順を見ていきましょう。アルゴリズム1. 3つの数値 a、b、c を初期化する。 2. a が b と c の両方より大きければ、a を出力する。
-
Pythonで2つの未ソートリストをマージしてソート済みリストを作成する方法
このチュートリアルでは、2つのリストをマージし、その結果をソートされた順序で出力するPythonプログラムの作り方を解説します。数値のリストだけでなく、文字列のリストにも対応できる汎用的な方法なので、ぜひ最後までご覧ください。実現したいことまず、具体的な入力と出力の例を見てみましょう。例1:数値のリストの場合入力:list_1 = [1, 3, 2, 0, 3]list_2 = [20, 10, 23, 43, 56, -1]出力:[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]例2:文字列のリストの場合入力:list_1 = [hafeez, aslan]lis
-
PythonのsocketモジュールでクライアントのIPアドレスを取得する方法
本チュートリアルでは、Pythonのsocketモジュールを使用して、クライアント(デバイス)のIPアドレスを取得する方法を解説します。ノートパソコン、スマートフォン、タブレットなど、すべてのデバイスには固有のIPアドレスが割り当てられています。socketモジュールを使えば、このIPアドレスを簡単に確認できます。 IPアドレス取得の基本的な流れ デバイスのIPアドレスを調べるには、以下の手順に従います。 1. socketモジュールをインポートする。 2. socket.gethostname()メソッドでホスト名を取得し、変数に格納する。 3. ホスト名を引数としてsocket.getho
-
Pythonで文字列内の単語の出現回数をカウントする方法
はじめにこのチュートリアルでは、文字列の中に特定の単語が何回出現するかを数えるPythonプログラムの作り方を解説します。文字列と検索対象の単語が与えられ、その単語が文字列内に出現する頻度(回数)を計算します。例として、文字列 I am a programmer. I am a student. と、単語 am を考えてみましょう。「am」は文字列内に2回出現するため、プログラムは 2 を返します。それでは、以下の手順に従ってプログラムを作成していきましょう。アルゴリズム1. 文字列と単語をそれぞれ変数として初期化する。 2. split()メソッドを使って、文字列を空白で分割し、単語のリスト
-
文字列がパングラムかどうかを判定するPythonプログラムの書き方
このチュートリアルでは、文字列がパングラムかどうかを判定するPythonプログラムの作成方法を解説します。まずは、パングラムについて簡単に説明しましょう。 パングラムとは? パングラムとは、アルファベットの26文字すべて(大文字・小文字は問わない)を含む文字列のことです。有名な例として「The Quick Brown Fox Jumps Over The Lazy Dog」が挙げられます。 パングラムの判定は、いくつかの異なる方法で実装できます。ここでは、代表的な2つの方法を紹介します。 方法1:基本的なループ処理 まず、最もシンプルな方法から見ていきましょう。以下の手順に従ってプログラムを作
-
【Python】1回の走査で文字列内のスペースを先頭に移動する方法
文字列が与えられたとき、その中のすべてのスペースを文字列の先頭へ移動させるのが今回の目標です。たとえば、文字列にスペースが4つ含まれている場合、その4つのスペースをすべての文字より前にまとめて移動させます。コーディングを始める前に、まずサンプルのテストケースを確認しておきましょう。 テストケース 入力: string = tutorials point 出力: tutorialspoint 入力: string = I am a python programmer. 出力: Iamapythonprogrammer. それでは、以下の手順に沿って目的を達成していきましょう。 ア
-
【Python】ループを使わずにnの最初のm個の倍数を出力する方法
このチュートリアルでは、for文などのループ処理を使わずに、ある数値nの最初のm個の倍数を求めるプログラムを作成します。例えば、n = 4、m = 3 の場合、出力は 4, 8, 12 となります。これは4の倍数を3つ並べたものです。この課題における最大のポイントは、「ループを使用しないこと」です。range()関数とはループを使わずに目的の出力を得るには、Python標準のrange()関数が便利です。range()関数は「範囲オブジェクト(rangeオブジェクト)」を返し、これをリストなどに変換して利用できます。構文range(start, end, step)start: 数列の開始値e
-
Pythonでリストと辞書を使ってアナグラムを見つけて出力する方法
このチュートリアルでは、リストと辞書を使ってアナグラム(同じ文字で構成された別の単語)を見つけ、出力するプログラムを作成します。なお、一つの問題へのアプローチは複数あります。まずはこのチュートリアルに頼らず、自分でコードを書いてみることをおすすめします。ロジックのアイデアが浮かばない場合は、以下の手順に従って進めてください。アナグラムとはアナグラムとは、同じ文字を並べ替えて作られる別の単語やフレーズのことです。たとえば「listen」と「silent」は、使用している文字が完全に一致しているため、互いにアナグラムの関係にあります。アルゴリズム全体の流れは以下の通りです。1. 文字列のリストを初
-
【初心者向け】Pythonのlambda式とfilter関数でリストから偶数を抽出する方法
このチュートリアルでは、Pythonにおけるlambda(ラムダ)式とfilter(フィルター)関数の実用的な使用例を紹介します。まずは、それぞれの基本的な仕組みから確認していきましょう。 lambda式とは lambda式は、簡単な関数を簡潔に記述するための構文です。たとえば「リストの中から偶数だけを取り出したい」といった処理も、lambda式を使えば短いコードで効率よく実装できます。 lambda式にまだ慣れていない方は、先に基礎チュートリアルで学習しておくと理解がスムーズになります。 filter(func, iter)関数とは filter(func, iter)は、2つの引数を受け取
-
【Python】FuzzyWuzzyライブラリで文字列の類似度を比較する方法
FuzzyWuzzyとは?このチュートリアルでは、PythonのFuzzyWuzzyライブラリについて学びます。FuzzyWuzzyは、2つの文字列を比較するために開発されたライブラリです。文字列の比較にはregexやdifflibといったモジュールもありますが、FuzzyWuzzyには独自の強みがあります。それは、比較結果をtrue/falseや文字列として返すのではなく、文字列がどれだけ一致しているかを0〜100のスコアで返してくれる点です。FuzzyWuzzyのインストールFuzzyWuzzyを使用するには、fuzzywuzzyとpython-Levenshteinの2つのパッケージが必
-
【Python】2つの文字列から共通しない文字だけを抽出して連結する方法
この記事では、2つの文字列が与えられたときに、両方の文字列に共通して現れない文字(ユニークな文字)だけを集めた新しい文字列を作成する方法を解説します。 例えば、「hafeez」と「kareem」という2つの文字列がある場合、そこから生成される新しい文字列は「hfzkrm」になります。つまり、片方の文字列にしか存在しない文字だけを取り出すことが目的です。手順を追う前に、まずは自分でロジックを一度考えてみてください。 ロジックが思いつかない場合は、以下の手順に従って進めてみましょう。 アルゴリズム 1. 文字列を初期化する。 2. 空の文字列を初期化する。 3. 1つ目の文字列に対してループ処理を
-
Pythonで数列 n + nn + nnn + …(m項)の合計を計算する方法
はじめに本記事では、Pythonを使って「n + nn + nnn + …」という規則性のある数列の合計を計算するプログラムを作成します。まずは、プログラムへの入力と出力の例を確認しておきましょう。Input: 3 4 3 + 33 + 333 + 3333 Output: 3702Input: 5 5 5 + 55 + 555 + 5555 + 55555 Output: 61725このように、2つの数値 n と m が与えられ、「n を桁数分だけ繰り返した数」を順番に並べた数列の最初の m 項の合計を求めます。以下の手順に従って実装していきましょう。アルゴリズム1. 数値 n と m を初
-
Pythonで作るシンプルな電卓プログラムの作り方
このチュートリアルでは、Pythonを使って基本的な電卓プログラムを作成する方法を解説します。基本的な電卓がどのようなものかは、皆さんよくご存じでしょう。ここでは、ユーザーに6つの選択肢を提示し、選ばれた演算に応じて処理を実行する仕組みを作ります。実装する演算の一覧加算(足し算)減算(引き算)乗算(掛け算)除算(割り算)切り捨て除算(Floor Division)剰余(Modulo、余り)まず自分で実装してみるのも良い勉強になります。以下の手順に沿って、シンプルな電卓のコードを書いていきましょう。アルゴリズム1. 2つの数値を初期化する。 2. 6つの選択肢を提示し、ユーザーにオプションを入力