Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つの文字列に共通する文字を抽出して表示する方法

2つの文字列に共通して含まれる文字を取り出したい場合、Pythonの「セット(set)」型を使うのが最もシンプルで効率的な方法です。

セット(set)とは

Pythonには、重複しない要素だけを保持する「セット」というデータ型が標準で用意されています。セットを利用すると、積集合(共通部分)、和集合、差集合、対称差といった集合演算を、直感的な記述で簡単に行うことができます。

以下に、2つの文字列から共通する文字を抽出して表示する具体例を示します。

サンプルコード

string_1 = 'hey'
string_2 = 'jane'

print("1つ目の文字列:")
print(string_1)
print("2つ目の文字列:")
print(string_2)

# 共通する文字(積集合)を取得
my_result = list(set(string_1) & set(string_2))

print("共通する文字:")
for i in my_result:
    print(i)

実行結果

1つ目の文字列:
hey
2つ目の文字列:
jane
共通する文字:
e

コードの解説

  • まず、2つの文字列「hey」と「jane」を定義し、それぞれコンソールに表示します。
  • set()関数で各文字列をセットに変換し、「&」演算子(積集合)によって、両方の文字列に存在する文字だけを抽出します。
  • 演算結果はリストに変換して変数に代入し、forループを使って1文字ずつコンソールに出力します。

補足:その他の集合演算

セットには目的に応じて使い分けられる演算子が複数用意されています。

  • &(積集合):両方のセットに存在する要素のみを返します。
  • |(和集合):いずれかのセットに存在するすべての要素を返します。
  • -(差集合):片方のセットにのみ存在する要素を返します。
  • ^(対称差):どちらか片方にのみ存在する要素を返します。

たとえば | を使うと、両方の文字列に出現するすべての文字を重複なく取得できます。共通文字の抽出だけでなく、文字列の比較や分析にもセットは非常に便利なので、ぜひ活用してみてください。

  1. Pythonでひし形を描画・出力するプログラムの書き方

    Pythonのループ処理(繰り返し構文)を活用すると、キーボードのさまざまな文字を使って、整形された図形を簡単に作成できます。その一例が「ひし形(ダイヤモンド形)」です。ひし形の出力には複数のループが必要になります。なぜなら、文字を縦方向と横方向の両方に出力しなければならないからです。さらに、図形は上端から中央に向かって徐々に大きくなり、中央から下端に向かって徐々に小さくなるという特徴もあります。このため、内側にもう1つのforループを含む、2つのforループを使用します。前半のループで上側(頂点から中央まで)を描き、後半のループで下側(中央から底辺まで)を描く仕組みです。サンプルコードdef

  2. Pythonで文字列の前半と後半が同じ文字セットを持つかどうかを判定する方法

    文字列が与えられたとき、その前半と後半がまったく同じ文字の集合を持っているかどうかを判定するのが、この記事のテーマです。解き方はシンプルです。まず文字列を中央で分割して2つの半分を作り、それぞれの半分に含まれる文字の種類と出現回数を比較します。もし文字列の長さが奇数の場合は、中央の1文字を無視し、残りの部分だけで判定を行います。アルゴリズムの手順ステップ1: 対象となる文字列を受け取ります。ステップ2: 入力文字列を中央で2つの部分に分割します。ステップ3: Counter(iterator) メソッドを使い、両方の部分をそれぞれ辞書(Counterオブジェクト)に変換します。各辞書は「文字を