robertvari

Eszter Haszon-Hegedüs - word stats (dictionary)

Apr 23rd, 2019
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.54 KB | None | 0 0
  1. folderPath = "E:/_PythonSuli/0413/homeworks/"
  2. textfile = "The Adventures of Sherlock Holmes.txt"
  3. mydocument = folderPath + textfile
  4.  
  5. with open(mydocument, "r") as f:
  6.     mytext = str(f.read())
  7.  
  8.     if len(mytext) == 0:
  9.         print("file is empty")
  10.     else:
  11.  
  12.         numberOfWords = len(mytext.split(" ")) # ez így szebb!
  13.         character = (len(mytext.replace(" ", "")))     #karakterek száma
  14.  
  15.         mytext2 = mytext.replace("\n", " ")
  16.         listOfWords = [ word for word in mytext2.split(" ") if len(word)>3]
  17.  
  18.         # itt készítünk egy dictionary-t ahol a kulcs a szó a value pedig az előfordulások száma.
  19.         mydic = {}
  20.         for i in listOfWords:
  21.             if not i in mydic:
  22.                 mydic[i] = 1
  23.             else:
  24.                 mydic[i] += 1
  25.  
  26.         # készítek egy listát ahol a három legnagyobb érték szerepel az első helyen
  27.         largestNumbers = sorted(mydic.values(), reverse=True)[:3]
  28.  
  29.         # Most hogy megvan a három legnagyobb szám megkeresem az ezekhez tartozó kulcsokat a dictionary-ban.
  30.         commonWords = []
  31.         for num in largestNumbers:
  32.             commonWords.append('{}:{}'.format(list(mydic.keys())[list(mydic.values()).index(num)], num))
  33.  
  34.     statfile = "Szavak száma: {}\nKarakterek száma (szóköz nélkül): {}\nA három leggyakoribb " \
  35.                "szó: {}, {}, {}".format(numberOfWords,character,commonWords[0],commonWords[1],commonWords[2])
  36.  
  37.     with open(folderPath + "statistics.txt", "w") as f:
  38.         f.write(statfile)
  39.  
  40.     print(statfile)
Advertisement
Add Comment
Please, Sign In to add comment