2017-10-14 7 views
-2

私は数ヶ月前からPythonを学んできましたが、文章中に単語が出現してインデックスが印刷される回数をカウントするプログラムを作成する方法を知りました。文中に単語が出現してインデックスが印刷される回数を計算するにはどうすればよいですか? (Python)

ありがとうございます。

+1

おい!SOへようこそ:対応するインデックスで句読点の基本治療、ならびに復帰ケースの変形を含みます。あなたは今何ヶ月もPythonを使ってきましたが、質問を作成する前にこれを "Google"しようとしましたか?あなたが何かを最初に試していないと(特にリンクがある) –

+0

あなたはこれを試してみることをお勧めします。特定の問題にぶつかったときに戻ってきて、特定の質問を書いてください。 – khelwood

+0

ありがとう、はい私はGoogle上で検索しようとしたが、単語が文で発生する回数を計算するPythonプログラムが見つかりましたが、インデックスを印刷しませんでした。 – Robbie

答えて

-2

質問と私の回答が変更されました。ここで最後の提案は次のとおりです。

string = "wordetcetcetcetcetcetcetcword" 

import re 
find = "word" 
p = re.compile(find) 
matches = [m.start() for m in p.finditer(string)] 
print(matches) 

戻り値:

[0, 25] 
+1

真実であるが、これは他の場所で利用可能な一般的なアドバイスを提供する(人々が読まない)。これは絶対に質問とは関係ありません。 – roganjosh

+0

@roganjosh私は同意しません。元の質問は:これを解決する方法についてのステップガイドのステップを提供してください。 –

+1

いくつかのコードで回答を編集しました。私は閉会することにしました。明確化またはdownvoteおよび移動のためのコメント。このサイトを仕事に使うとき、「Google this」は後世に役立つと思いますか? – roganjosh

0

ありそれを行うには、いくつかの方法がありますが、ここでは単語のインスタンスの数をカウント1つの自明な解があるが、取ることはありません例えば口座への赤点斑:

from collections import Counter 
s = "This is true. This is false." 
c = Counter(s.split(' ')) 
print(c['This']) # Prints "2" 
0
def count_index(string, search_term): 
    return (search_term, 
     string.count(search_term), 
     [string.replace(search_term, '', i).index(search_term) + (len(search_term)*i) for i in range(string.count(search_term))] 
    ) 

ロジック(bodgyビットが)である戻り

>>> a = test.count_index("python is a very good language, i like python because python is good", "python") 
>>> a 
('python', 3, [0, 39, 54]) 

は、基本的には、所与のstringsearch_termの出現箇所の範囲に渡って行き、したがって、インデックス単語、リストにインデックスを追加します。単語を何も置き換えずに次の単語に置き換えると、現在のインデックスに従って削除された文字の量が加算され、ループは正常に機能します。

0

学習者も歓迎します。以下はあなたを得るかもしれません。

import string 
# 
mask = str.maketrans('', '', string.punctuation) # Punctuation mask. 
# 
def aFunc(sentence, word): 
    words = sentence.translate(mask).split(' ') # Remove punctuation. 
    indices = [(e,w) for (e,w) in enumerate(words) if w.lower() == word.lower()] # Collect (index,word) pairs. 
    return (len(indices), indices) 

s = 'The cat fell out of the hat. Then thE cAt fell asleep against the haT=:)' 

aFunc(s, 'HAT') 
(2, [(6, 'hat'), (14, 'haT')]) 

aFunc(s, 'the') 
(4, [(0, 'The'), (5, 'the'), (8, 'thE'), (13, 'the')]) 

aFunc(s, 'Cat') 
(2, [(1, 'cat'), (9, 'cAt')]) 
関連する問題