攝影或3C

Python: 字串 str.find(關鍵字[,start][,end]),找不到的話回傳-1,如何找出資料字串中,所有關鍵字的index?詞頻計算

資料來源: https://docs.python.org/3/library/stdtypes.html#str.find

data.txt:

I love you all. But you do love love me at all.\nYou always love Python.

程式碼:
filePath = r”C:\Python\myfind\data.txt”

def keywordIndexFromFile(patterns : str, filePath : str) -> list:      
  with open(filePath,”r”) as f:
      dataStr = f.read()
      #print(dataStr)
      lst=[]
      idx = dataStr.find(patterns)
      #lst=[ idx ]      
   
      while idx != -1:
          #idxTmp = dataStr.find(patterns,idx+1)
          lst.append( idx )
          idx = dataStr.find(patterns,idx+1)
  return lst

print(keywordIndexFromFile(“love”,filePath))
參考解答:
詞頻計算:
# -*- coding: utf-8 -*-
from typing import Tuple
filePath = r”C:\Python\myfind\data.txt”

def keywordIndexFromFile(patterns : str,
       filePath : str) -> Tuple[list[int],float]:      
  with open(filePath,”r”) as f:
      dataStr = f.read()
      #print(dataStr)
  lst=[]
  idx = dataStr.find(patterns)
  #lst=[ idx ]      
  while idx != -1:
      #idxTmp = dataStr.find(patterns,idx+1)
      lst.append( idx )
      idx = dataStr.find(patterns,idx+1)
  lstAll = dataStr.split(” “)
  #print(lstAll , len(lstAll))
  termFrequency = len(lst) / len( lstAll )
  return lst, termFrequency

lst, termFrequency = keywordIndexFromFile(“love”,filePath)
print(“Key word index:”,lst)
print(“詞頻: %.2f %%” %(termFrequency*100) )

參考解答:
改用**dict當作輸入參數:
儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡