25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
Bu depo arşivlendi. Dosyaları görüntüleyebilir ve klonlayabilirsiniz ama işlem gönderemez ve konu/değişiklik isteği açamazsınız.

04-top-words.py 784 B

6 yıl önce
12345678910111213141516171819202122232425262728293031323334353637383940
  1. import sys
  2. def get_value(pair):
  3. key, value = pair
  4. return value
  5. def get_word(chunk):
  6. if all(x.isalpha() for x in chunk):
  7. if len(chunk) < 4:
  8. return None
  9. return chunk.lower()
  10. else:
  11. return None
  12. def main():
  13. filename = sys.argv[1]
  14. stream = open(filename, "r")
  15. scores = {}
  16. for line in stream.readlines():
  17. for chunk in line.split():
  18. word = get_word(chunk)
  19. if word:
  20. if not word in scores:
  21. scores[word] = 0
  22. else:
  23. scores[word] += 1
  24. stream.close()
  25. top = sorted(scores.items(), key=get_value, reverse=True)
  26. for word, count in top[0:10]:
  27. print(count, word)
  28. if __name__ == "__main__":
  29. main()