Python

 Computer >> コンピューター >  >> プログラミング >> Python
  1. Pythonで指定したサイズのグループごとに配列を反転させるプログラム

    この記事では、ユーザーが入力した配列とグループのサイズをもとに、指定されたサイズごとに配列を反転させるPythonプログラムを解説します。 基本的な考え方はシンプルです。まず、配列をグループサイズ(p)ずつの部分配列に分割し、各部分配列を個別に反転させます。 p が n の倍数でない場合: 最後のグループは p 個未満の要素が余りますが、その余った要素も含めてすべて反転します。 p = 1 の場合: 各要素は単独のグループとなるため、配列は元の順序のまま変化しません。 p ≥ n の場合: 配列全体がひとつのグループとして扱われ、すべての要素が一括で反転されます。 アルゴリズム 以下は、こ

  2. 3つのソート済み配列から共通要素を見つけるPythonプログラムの書き方

    この記事では、Pythonを使って3つのソート済み配列(リスト)に共通して含まれる要素を効率的に見つける方法を解説します。 基本的な流れは以下のとおりです。まず、ユーザーが入力した3つの未ソートのリストを用意し、それぞれをsorted()関数で昇順に並べ替えます。その後、各リストの先頭から同時に走査を行い、3つのリストの現在位置にある要素がすべて一致するかどうかを確認します。一致していればその要素を出力し、一致していなければ最も小さい値を持つインデックスを進めて次の要素へ移動します。 処理の概要 配列のサイズをそれぞれ n1、n2、n3 とし、各配列の走査位置を示すインデックスを i = 0、

  3. Pythonでリストが空かどうかを判定するプログラム

    Pythonでは、リストが空かどうかを簡単に判定できます。この記事では、空のリストが与えられたときに、それが空であるかどうかを確認する方法を紹介します。ポイントは、暗黙的(implicit)な判定方法を使うことです。Pythonでは、空のリストはブール値として「偽(False)」と評価されるため、if not を使うことで簡潔にチェックできます。 アルゴリズム ステップ1:空のリストを用意します。 ステップ2:リストが空であれば 1 を返し、そうでなければ 0 を返します。 サンプルコード # リストが空かどうかをチェックするPythonコード def checklist(A):

  4. 配列を1つずつ時計回りに循環回転させるPythonプログラム

    ユーザーが入力した配列を受け取り、その要素全体を時計回りに1つずつ循環的に回転させるのが本記事の目的です。最後尾の要素が先頭に移動し、それ以外の要素はそれぞれ後ろへ1つずつシフトされます。 実行例 入力:A = [1, 2, 3, 4, 5] 出力:[5, 1, 2, 3, 4] この例では、末尾の「5」が先頭に移動し、「1〜4」はそれぞれ1つ後ろへずれています。 アルゴリズムの手順 ステップ1:配列の要素を入力する。 ステップ2:配列の最後の要素を変数 x に保存する。 ステップ3:すべての要素を1つ後ろの位置へシフトする。 ステップ4:配列の先頭要素を x で置き換える。 ポイント

  5. 指定した範囲内の乱数を生成してリストに保存するPythonプログラム

    このプログラムでは、3つのユーザー入力変数を使用します。1つ目は乱数の開始値、2つ目は終了値、3つ目は生成して表示する乱数の個数です。 Pythonには乱数を生成するための標準モジュール random が用意されています。本記事では、その中でも指定した範囲内の整数乱数を返す randint() 関数を使用します。randint() は2つの引数(開始値と終了値)を受け取り、両端の値を含む範囲からランダムな整数を1つ返します。 実行例 n :: 10 s :: 20 e :: 40 [20, 35, 32, 27, 24, 35, 28, 31, 20, 28] アルゴリズム Random

  6. NumPyを使ってn×nのチェッカーボード(市松模様)パターンを出力するPythonプログラム

    nの値が与えられたとき、n×nの行列に対してチェッカーボード(市松模様)パターンを表示するのが本記事の目的です。 NumPyには、初期値を指定して配列を作成できるさまざまな関数が用意されています。NumPyはPythonにおける科学技術計算の基盤となるパッケージであり、数値配列の生成や操作を高速かつ簡潔に記述できます。 アルゴリズム ステップ1: 行列の次数nを入力する。 ステップ2: zeros((n, n), dtype=int) を使って n×n のゼロ行列を作成する。 ステップ3: スライシングのテクニックを使い、交互の行と列に 1 を代入する。 ステップ4: 行列を表示する。 ス

  7. Pythonで整数配列の重複を除去し、個別の要素だけを出力する方法

    整数型の配列が与えられ、その中には重複した要素が含まれている場合があります。この記事では、重複を取り除いて個別(ユニーク)な値だけを出力するPythonプログラムを解説します。 実行例 入力:A = [1, 2, 3, 4, 2, 3, 5, 6] 出力:[1, 2, 3, 4, 5, 6] アルゴリズム このプログラムは次の手順で動作します。 配列の要素を入力として受け取ります。 各要素を先頭から順番に1つずつ取り出します。 取り出した要素が、それ以前にすでに出力されたものかどうかを確認します。 初期値0のフラグ変数を用意し、すでに表示済みなら1、未表示なら0のままにします。 フラ

  8. 【初心者向け】Pythonで2つのリストの差分(違い)を抽出する方法を解説

    この記事では、2つのリストが与えられたときに、その差分(違い)を表示するPythonプログラムを紹介します。Pythonにはset()メソッドが用意されており、ここではこのメソッドを活用します。 セット(集合)とは、重複する要素を持たない順序なしのコレクションです。セットオブジェクトは、和集合・積集合・差集合・対称差といった数学的な操作もサポートしているため、リスト同士の比較に非常に便利です。 実行例 入力: A = [10, 15, 20, 25, 30, 35, 40] B = [25, 40, 35] 出力: [10, 20, 30, 15] 考え方 求めたい差分リストは、次のよう

  9. 【Python】スライス演算子を使ってリストをコピー・複製する方法

    この記事では、ユーザーが入力したリストをコピー(複製)するPythonプログラムを紹介します。リストの複製には「スライス」のテクニックを使用します。スライス演算子(:)を使うことで、元のリストとは独立した新しいリストオブジェクトを作成できます。この操作は「クローニング」とも呼ばれます。 なお、Pythonでは単純に b = a のように代入すると、リストそのものがコピーされるわけではありません。これは同じオブジェクトへの参照が渡されるだけなので、片方を変更するともう片方も一緒に変わってしまいます。これを避けるためには、明示的なコピーを行う必要があります。 アルゴリズム Step 1: リスト

  10. 文中の各単語を逆順に並べ替えるPythonプログラムの書き方

    この記事では、Pythonの組み込み関数を使って、文の中の各単語を逆順にする方法を解説します。処理の流れはシンプルで、まず文を単語のリストに分割し、次に各単語を反転させて新しいリストを作成し(ここではリスト内包表記を活用)、最後にそのリストを結合して新しい文を生成します。 実行例 入力 :: PYTHON PROGRAM 出力 :: NOHTYP MARGORP アルゴリズム ステップ1 : 文を入力し、変数 s に格納する。 ステップ2 : 文を単語のリストに分割する。 w = s.split( ) ステップ3 : 各単語を反転させ、新しい単語リスト nw を作成する。 ステップ

  11. Pythonで2つの辞書をマージするプログラムの書き方

    この記事では、Pythonを使って2つの辞書(ディクショナリ)を1つに結合(マージ)するプログラムを紹介します。辞書の結合には、組み込みメソッドである update() を使用します。update() メソッドは、引数に渡した辞書の要素を呼び出し元の辞書へ追加することで、2つの辞書を統合できます。 なお、update() の戻り値は None です。つまり新しい辞書が生成されるわけではなく、既存の辞書そのものが直接更新されるという点に注意してください。 実行例 入力:: A = {AAA: 10} B = {BBB: 20} 出力:: C = {BBB: 20, AAA: 10} アルゴリ

  12. Pythonで数値の特定の位置から「k」ビットを抽出する方法

    この関数は、指定した位置(pos)から「k」個のビットを抽出し、その抽出結果を返すために使用します。ここでは、Pythonのスライス(slicing)という手法を活用して実装していきます。 実行例 入力:number = 170 K = 5 Pos = 2 出力:21 上記の例では、10進数の「170」を2進数に変換すると「10101010」となります。右端から2番目の位置を起点として、そこから左方向に5ビットを抽出すると「10101」になり、これを10進数に戻すと「21」になります。 アルゴリズム Extractionbit(no, k, pos) /* ユーザ

  13. タプルを任意のキーで昇順にソートするPythonプログラム

    タプルのリストが与えられたとき、任意の要素(キー)を基準として昇順に並べ替えることを考えます。この処理にはPython組み込みのsorted()関数を使用し、key引数に「どのインデックスの値で比較するか」を返す関数を渡すことで、指定したキーに従ったソートを実現します。 例 入力: A = [(2, 55), (1, 20), (4, 40), (2, 30)] k = 0 出力: [(1, 20), (2, 30), (2, 55), (4, 40)] この例では、各タプルの0番目(先頭)の要素をキーとして昇順にソートしています。その結果、先頭の値が小さい順にタプルが並べ替え

  14. Pythonで文がパングラムかどうかを判定するプログラムの作り方

    与えられた文がパングラム(パングラム:pangram)であるかどうかを判定するのが、本記事のテーマです。パングラムとは、アルファベットのすべての文字(a〜z)を少なくとも1回は含んでいる単語や文のことを指します。たとえば有名な例として「The quick brown fox jumps over the lazy dog」が挙げられます。 この問題は、Pythonのset()メソッドやリスト操作を組み合わせることで、シンプルに解決できます。 判定条件の例 Input: string = abc def ghi jkl mno pqr stu vwx yz Output: Yes // ‘a’

  15. 【Python】指定した文字列に部分文字列が含まれているか確認するプログラムの作り方

    この記事では、入力された文字列の中に特定の部分文字列が存在するかどうかを判定するPythonプログラムを紹介します。文字列操作の基礎となる重要なテクニックなので、ぜひマスターしておきましょう。 アルゴリズム 処理の手順は以下の通りです。 ユーザーから文字列と部分文字列を入力として受け取り、それぞれ別の変数に格納します。 組み込み関数 find() を使って、部分文字列が文字列内に存在するかどうかを判定します。 最終的な結果を出力します。 プログラムを終了します。 サンプルコード def check(str1, sstr): if (str1.find(sstr) == -1)

  16. Pythonのセット(集合)操作を徹底解説!主要メソッドと演算子の使い方

    数学における集合(セット)とは、互いに異なるオブジェクトの集まりであり、それ自体が一つのオブジェクトとして扱われるものです。たとえば、2、4、6という数値は個別に見ればそれぞれ独立したオブジェクトですが、ひとまとめに考えればサイズ3の一つの集合「{2, 4, 6}」を形成します。 Pythonのセットには次のような特徴があります。 重複した要素を持たない 順序が定義されていない(インデックスによるアクセス不可) ミュータブル(frozensetを除く) 集合に対する基本的な演算 演算 記法 意味 積集合(共通部分) A ∩ B AとBの両方に含まれるすべての要素 和集合 A ∪

  17. 【Python】2つのリスト間の欠落している値と追加されている値を見つける方法

    集合論において、ある集合Aの「補集合」とは、Aに含まれない要素を指します。また、集合Bに対するAの「相対補集合」は、集合AとBの「差(difference)」とも呼ばれます。本記事では、この原理を応用し、Pythonで2つのリストを比較することで、互いに欠落している要素と余分な要素を効率よく見つける方法を解説します。Pythonのset型には差分を求めるためのdifference()メソッドが標準で用意されており、これを使うと非常にシンプルに実装できます。 アルゴリズム ユーザー入力から2つのリストAとBを作成します。 AとBをそれぞれセット(set型)に変換します。 1つ目のリストに欠落し

  18. Pythonでループを使わずに再帰関数だけで数列を出力する方法

    ある数 n が与えられたとき、for 文や while 文などのループ構文を一切使わずに、n から始めて 5 ずつ減算し 0(または負の値)に達した後、今度は 5 ずつ加算しながら再び n まで戻る数列を出力する方法を紹介します。この問題は再帰関数を使うことでエレガントに解決できます。 実行例 入力: n = 15 出力: 15 10 5 0 5 10 15 アルゴリズム ステップ1: 数値 n を受け取ります。 ステップ2: n に向かって戻る途中であり、すでに n に到達していれば処理を終了します。 ステップ3: 現在、0 または負の値へ向かって減算している段階かどうかを確認します。

  19. 【Python】2つの数値の2進表現がアナグラムかどうかを判定するプログラム

    2つの数値が与えられたとき、その2進表現同士がアナグラム(同じ文字を並べ替えたもの)になっているかどうかを判定します。Pythonでは、collectionsモジュールのCounterクラスと辞書の比較を組み合わせることで、この問題をシンプルかつ効率的に解くことができます。 実行例 入力: a = 8, b = 16 出力: Yes 両方の数値の2進表現は、0と1の個数が同一です。 アルゴリズム ステップ1 : 2つの数値を受け取ります。 ステップ2 : bin()関数で各数値を2進数の文字列に変換し、接頭辞「0b」に相当する先頭2文字を取り除きます。 ステップ3 : 2つの2進表現は

  20. Pythonのzip()関数で文字列を新しい文字セットに変換する方法

    26文字からなる文字セットが与えられたとき、ここでは「新しい文字セット」を使用します。これは、通常のアルファベット(a, b, c … z)とは並び順が異なる文字セットです。この記事の課題は、新しい文字セットと標準的な英字アルファベットとの間に対応関係(マッピング)を作り、入力された文字列を新しい文字セット上の文字へ変換することです。 例 新しい文字セット: qwertyuiopasdfghjklzxcvbnm 入力: wwmn 出力: bbzy この例では、「qwertyuiopasdfghjklzxcvbnm」という新しい文字セットの各文字が、先頭から順に a, b, c … z に対応し

Total 8994 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:70/450  20-コンピューター/Page Goto:1 64 65 66 67 68 69 70 71 72 73 74 75 76