2016-05-24 5 views
0

大文字と小文字が混在した文章を入力し、各単語の位置を出力する必要があります。しかし、1つの単語が大文字で、同じ単語が小文字でのみ入力された場合は、別の単語としてカウントされます。例えば。本とBOOKが入力された場合、これらは2つの別個の単語としてカウントされます。私は.upper/.lower関数を使ってみましたが、大文字を入れた後に戻す方法はありませんか?私は大文字を取り除いてから再度入れなければなりません。大文字を切り取り、再度同じ場所に戻す方法は?

def analyse_sentence(): 
     sentence=input("Please enter your sentence") 
     sentence=sentence.split 
     compression(sentence) 

    def compression(sentence): 
     positions=[] 
     Unique_words=[] 
    for i in sentence: 
     if i not in unique: 
     unique.append(i) 
     positions.append(unique_words.index(i)+1) 
+3

コピーを作成し、そのコピーからキャップ文字を削除します。 – Marichyasana

+0

あなた自身のコードのサンプルを提供してください。正確に何が問題になっているのでしょうか。 @Marichyasanaが述べたように、ソリューションは別のリファレンスを使用するのと同じくらいシンプルなものになる可能性がありますが、独自の実装を見ることなくこれを行うことができるかどうかははっきりしていません。 –

+0

あなたの出力はどのように見えますか?たとえば、各単語のキーと文の位置の値を持つ辞書ですか? –

答えて

0

スタックオーバーフローで転記する場合は、コードサンプルを提供する必要があります。 あなたが持っているデータは何か、コードは何か、何をしているのか、代わりに何を得ようとしているのですか? あなたを助けるのはずっと簡単です。 とにかく、ここに私の試みはあなたを助けることである:

text = 'blabla word1 word2 WORD word book BOOK bLaBlA' 
unique_words = list(set(text.lower().split(' '))) 
print('text : %s' % text) 
print('unique words : %s' % ','.join(unique_words)) 

EDIT:

def analyse_sentence(): 
    sentence = input("Please enter your sentence") 
    unique_words = list(set(sentence.lower().split(' '))) 
    print('sentence : %s' % sentence) 
    print('unique words : %s' % ','.join(unique_words)) 
    return unique_words 
+0

私のコードの始めを説明に入れました – Rebecca

+0

これは私の文を逆の順序で返し、各単語の間にドットを入れています。私は「こんにちはなぜ」という言葉を入力し、ユニークな言葉をnot.why.helloとして返しました。 A – Rebecca

+0

あなたの文章は普通の言葉でできています。 try:helloこんにちはこんにちはなぜ、なぜ、あなたはそれがユニークな単語を返すだけを参照してください。 –

関連する問題