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

リストと辞書を使用してPythonでアナグラムを一緒に印刷する


このチュートリアルでは、リストを使用してアナグラムを検索して印刷するプログラムを作成します。 および辞書 。私たちはすべての問題に対して異なるアプローチをとっています。チュートリアルに従わずにコードを書いてみてください。ロジックを書くためのアイデアを生み出すことができない場合は、以下の手順に従ってください。

アルゴリズム

1。文字列のリストを初期化します2。空の辞書を初期化します3。文字列のリストを繰り返し処理します。 3.1。文字列を並べ替えて、キーとして辞書に存在するかどうかを確認します。 3.1.1。ソートされた文字列がすでにキーとして辞書に存在する場合は、元の文字列をキーに追加します。 3.2それ以外の場合は、ソートされた文字列をキーとして空のリストをマップし、元のリストを追加します。空の文字列を初期化します5。辞書項目を繰り返し処理します。 5.1。すべての値を空の文字列に連結します6。文字列を印刷します。

上記のアルゴリズムのコードを書いてみましょう。

##文字列のリストを初期化するstrings=["apple"、 "orange"、 "grapes"、 "pear"、"peach"]##空の辞書を初期化するanagrams={}##文字列の文字列のリストを反復処理する文字列内:##文字列の並べ替えkey ="" .join(sorted(string))## anagrams.keys()の文字列の場合にキーがdictに存在するかどうかを確認します:##元の文字列をキーに追加しますanagrams [key] .append(string)else:##空のリストをキーにマッピングするanagrams [key] =[]##文字列をキーに追加するanagrams[key].append(string)##空の文字列の結果を初期化する="" ##キーの辞書を反復処理し、anagrams.items()の値:##結果にすべての値を追加+ ="" .join(value)+ "" ## resultprint(result)<を出力/ pre> 

出力

上記のプログラムを実行すると、次の出力が得られます。

リンゴオレンジブドウ梨桃

結論

チュートリアルについて疑問がある場合は、コメントセクションにその旨を記載してください。


  1. Pythonでのスタックおよびキューとしてのリストの使用

    この記事では、Python3.xのスタックとキューの構造について学習します。またはそれ以前。ここでは、これらのデータ構造内での動作と変更について説明します- これには-が含まれます 挿入操作(プッシュ、エンキュー) 削除操作(ポップ、デキュー) 表示/トラバース操作 前提条件 :リストとリスト操作 関連データ構造 :リスト操作 関連画像 スタック スタックでは、オブジェクトは互いに重ねて格納され、これらのオブジェクトは到着の逆の順序で削除されます。つまり、LIFOの概念に従います。 LIFOは、スタックデータ構造で後入れ先出しタイプの配置に従うことを意味します。 スタックで

  2. Pythonを使用して配列リストの0と1を分離しますか?

    リスト内包表記は、Pythonで人気のある手法です。ここでは、この手法を使用します。ユーザー入力配列を作成します。配列要素はランダムな順序で0と1である必要があります。次に、左側の0と右側の1を分離します。配列をトラバースし、2つの異なるリストを分離します。1つは0を含み、もう1つは1を含み、2つのリストを連結します。 例 Input:: a=[0,1,1,0,0,1] Output::[0,0,0,1,1,1] アルゴリズム seg0s1s(A) /* A is the user input Array and the element of A should be the combin