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

2つの文字列のうち片方にのみ含まれる文字を表示するPythonプログラム

2つの文字列を比較し、どちらか一方の文字列にのみ含まれていて、両方には含まれない文字を重複なく表示したいケースはよくあります。このような処理は、ユーザーからの入力を受け取り、Pythonの「リスト(list)」と「セット(set)」を組み合わせることで簡単に実現できます。

リストは、整数や浮動小数点数、文字列など、異なるデータ型の値をまとめて格納できる汎用的なデータ構造です。list()メソッドを使うと、任意のイテラブル(反復可能オブジェクト)をリスト型へ変換できます。

また、Pythonには標準で「セット(set)」というデータ型が用意されています。セットには重複しない一意な要素のみが格納されます。

セットは、和集合・差集合・積集合・対称差といった集合演算を行う際に非常に便利です。本記事のコードでは、演算子「^」による対称差を利用することで、「片方の文字列にだけ存在する文字」を効率よく抽出しています。

サンプルコード

以下に具体的な実装例を示します。

my_str_1 = input("1つ目の文字列を入力してください...")
my_str_2 = input("2つ目の文字列を入力してください...")
my_result = list(set(my_str_1)^set(my_str_2))
print("片方の文字列にのみ含まれる文字は次のとおりです:")
for i in my_result:
    print(i)

実行結果

1つ目の文字列を入力してください...Jane
2つ目の文字列を入力してください...Kane
片方の文字列にのみ含まれる文字は次のとおりです:
K
J

コードの解説

  • ユーザーから1つ目と2つ目の文字列を入力として受け取ります。
  • それぞれの文字列をset()でセット構造に変換します。
  • 演算子「^」により対称差(どちらか一方にのみ存在する要素)を計算します。
  • その演算結果をlist()でリストに変換し、変数に格納します。
  • forループでリストを反復処理し、各文字をコンソールに出力します。
  1. Pythonで2つの文字列の間に存在する辞書順の文字列を見つける方法

    問題の概要 2つの文字列 S と T が与えられたとき、S より辞書順で大きく、T より辞書順で小さい同じ長さの文字列が存在するかどうかを判定します。該当する文字列が存在しない場合は -1 を返します。 たとえば、入力が S = bbb、T = ddd の場合、出力は bbc となります。bbb の直後に辞書順で来る文字列は bbc であり、これは ddd よりも小さいためです。 辞書順の定義 S = S1S2…Sn があるインデックス i について S1 = T1, S2 = T2, …, Si-1 = Ti-1, Si < Ti を満たすとき、S は T = T1T2…Tn より辞書

  2. 文字列が空かどうかをチェックするPythonプログラム

    この記事では、与えられた文字列が空であるかどうかを判定するための解決策とアプローチについて解説します。 問題文 文字列が入力として与えられたとき、その文字列が空(空文字列)であるかどうかを判定する必要があります。 Pythonの文字列はイミュータブル(変更不可)な性質を持っているため、文字列に対して何らかの操作を行う際には注意して扱う必要があります。 ここでは、上記の問題を解決するための2つのアプローチを紹介します。 len()メソッドを使用する方法 等価演算子(==)を使用する方法 アプローチ1:len()メソッドを使う方法 len()関数で文字列の長さを取得し、その長さが0であれば空文