2017-10-14 45 views
-2

所以我一直在學習Python幾個月,並想知道如何去編寫一個程序來計算一個單詞在一個句子中出現的次數並打印出索引。如何計算單詞在句子中出現的次數並打印出索引? (Python)

謝謝。

+1

嗨!歡迎SO。你已經使用Python好幾個月了,但是你在創建一個問題之前是否試圖「谷歌」這個?如果你沒有先嚐試某些東西(最好是帶有鏈接),那麼Ppl並不總是樂於幫助 –

+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

有幾種方法可以做到這一點,但這裏是一個計數的單詞的實例數一個平凡的解決方案,但不採取例如punctation考慮:

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))] 
    ) 

返回

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

的邏輯是(雖然有點bodgy)基本上會在一定範圍內的search_term給定string從而索引的出現次數的單詞,將索引添加到列表中;那麼它將該詞替換爲無,然後在下一個詞中增加根據當前索引刪除的字符數量,並且循環工作得很好。

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')]) 
相關問題