2016-10-11 17 views
-5

OK、私は文中の各単語の番号を作ることができるPythonでプログラムを作る必要があります。単語が同じ場合は同じ数字になりますが、元の文に戻すことができなければなりません。文章中のすべての単語を数字に変更する方法とそれを戻す方法

は、例えば、「猫はマットの上に座って今日は」「マット」で0 1 2 3 4 1 5

0が「今日」と5に変更されるであろう、そして1「は」

であります

私はこれのが数である各単語のための変数を作成するためのアイデアを得るのであれば基本的には、唯一の問題は、私は分からないです、このプログラムを作り始めるためにした、

いくつかの助けには本当に感謝感謝のようになります。 )

+1

ようこそStackOverflow。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [on topic](http://stackoverflow.com/help/on-topic)および[How to Ask](http://stackoverflow.com/help/how-to-ask)をここで適用してください。 StackOverflowは、コーディングまたはチュートリアルサービスではありません。 – Prune

+1

ちょうど純粋な好奇心から、別の例は、「あなたの国のためにあなたができることをあなたの国が求めることはできませんか? – jonrsharpe

+0

あなたの試みのいくつかを見ることは素晴らしいことでしょう。あなたは問題を解決しようとしましたか? – devtye

答えて

1

これは学校の割り当てとよく似ています。私の経験から、ベストプラクティスは自分自身で行うことだと言うことができるので、私が最初に示唆するヒントを見ることをお勧めします。もしあなたが本当に立ち往生していれば、コードを見てください。

ヒント1:最初の単語のリストに

セパレート文。

あなたは

使用してこれを行うことができます。

words = sentence.split(" ")

ヒント2:

は、あなたがしたいです単語から番号へのある種のマッピングを作成しますが、逆もあります。

あなたはこの使用

dictsを行うことができます。文字通りの辞書として扱いましょう。言葉をキーとして、数値を数値として、数字をキーと単語として数値で1つの辞書にします。それはあなたが必要に応じて数字と言葉を調べることを可能にします。数字をキーとして持つ辞書は、理論的にはリストになることができますが、数字が必要ないときや、特定のエントリを削除したいときには、これが破損する可能性があります。

ヒント3:

あなたはすべての単語のためのヒント2で述べた両方のdictsにエントリを生成する必要があります - あなたが戻って行くことができることを確認します。したがって、単語を含むリストのforループと各繰り返しでは、両方のdictにエントリが生成されます。

ヒント4:

必ず同じ言葉が行くには2つの方法がありますが、同じ番号にマッピングするためには

。まず、反復処理中に、単語がwords> numbers dictにあるかどうかを簡単に確認できます。そうであれば、それをスキップしてください。それ以外の場合は、エントリを生成します。使用した最高の番号を追跡する必要があることに注意してください。第二に、単語を含むリストをセットに変換することができます。これによりすべての重複が直接削除されますが、単語の順序が失われる可能性があります。つまり、例では3 2 0 5 4 2 1

となります。絶対に必要な場合、私はそれを行うためのコードを提供することができますが、私はあなた自身でそれを理解することを強くお勧めします。

+0

s = "私の名前はボブですね" インデックス= val + "=" + str(インデックス)、列挙型(s.split())] print – Dummy8123

+0

s = "あなたは質問しますインデックス= val + "=" + str(インデックス)、列挙型(s.split())] print – Dummy8123

+0

残念ながら私のコンピュータは他のコメントを削除できません今のところ私のコードを演奏するのはs = "ねえ、私の名前はボブだよ" s = [str(インデックス+ 1)for enumerate(s.split())] print しかしこれはありません私はそれが働きたがっているように働いているように思えます。(繰り返し単語を説明しないように助けてください。また、単語を数字にマッピングすることについての意味を理解していません。今度は絶望的です。 – Dummy8123

関連する問題