### Sum-up:
1. Define a function to deal with punctuation marks.
2. Define a function to sort a dictionary by its value.
3. Read in file and store words in a dictionary.
### 1. Deal with punctuation:
First set a empty str, and then loop through the characters and add to str if each character is an alphabet or a digit.
```
def string_manipulation(s: str):
result = ""
for char in s:
if char.isalpha() or char.isdigit():
result += char
return result
```
### 2. Sorting in a dict:
reference: https://docs.python.org/3/howto/sorting.html
use the `sorted()` method.
Loop through key and value as items(a tuple) in a dict, and then pass in the second element(which will be the value) as a sorting key parameter into sorted method.
**point: key=lambda item: item[1]**
```
def print_out_d(d: dict):
"""
: param d: (dict) key of type str is a word
value of type int is the word occurrence
---------------------------------------------------------------
This function prints out all the info in d
"""
# sort dict by values descending
for key, value in sorted(d.items(), key=lambda item: item[1], reverse=True):
print(f"{key} -> {value}")
```
### 3. Manipulate the file:
```
def main():
with open(FILE, "r") as f:
word_dict = dict()
for line in f:
tokens = line.split()
for token in tokens:
# manipulate each word to get rid of puncuation
token = string_manipulation(token)
# add to the dict
if token not in word_dict:
word_dict[token] = 1
else:
word_dict[token] += 1
print_out_d(word_dict)
```