-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlesson_16.py
More file actions
131 lines (116 loc) · 3.19 KB
/
Copy pathlesson_16.py
File metadata and controls
131 lines (116 loc) · 3.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Dictionaries
# in, .get, .setdefault, collections.Counter, defaultdict, #del,
# for, .keys, .values, .items
from collections import defaultdict
# in lesson samples
def names_to_bands():
band1_names = [
'John',
'George',
'Paul',
'Ringo'
]
band2_names = ['Paul']
names_to_bands = {}
for name in band1_names:
names_to_bands.setdefault(name, []).append('Beatles')
for name in band2_names:
names_to_bands.setdefault(name, []).append('Wings')
print(names_to_bands)
# task 01
info = {
'firstname': 'Torrino',
'lastname': 'Chipollino',
'age': 10
}
# task 02
def insert_info_in_dict():
phone_dict = defaultdict(list)
key_list = ['model', 'screen_size', 'memory', 'OS', 'provider']
info_list = [
'Stripsung. 9.10.1',
'480x120',
'2 GB',
'Tak OS',
'Phone Monopoly Unlimited Corp.'
]
# for key_name in key_list:
# if key_name == 'model':
# info = 'Stripsung. 9.10.1'
# elif key_name == 'screen_size':
# info = '480x120'
# elif key_name == 'memory':
# info = '2 GB'
# elif key_name == 'OS':
# info = 'Tak OS'
# elif key_name == 'provider':
# info = 'Phone Monopoly Unlimited Corp.'
for key_name in key_list:
phone_dict[key_name] = info_list[key_list.index(key_name)]
for key, value in phone_dict.items():
print(f"{key}: {value}")
# task 03
def every_word_in_paragraph_counter():
reader = open('data/text_Emerson.txt', 'rt')
text_list = reader.read()
reader.close()
words_list = text_list.split()
every_word_counter = defaultdict(list)
num_word_dict = defaultdict(list)
for word_ in words_list:
every_word_counter.setdefault(word_, 0)
every_word_counter[word_] += 1
for key_, value_ in every_word_counter.items():
num_word_dict.setdefault(value_, []).append(key_)
dict_to_print = num_word_dict
for w, n in sorted(dict_to_print.items(), reverse=True):
print(f"{w}: {n}\n")
# task 04
def word_reuse_counter():
pass
# task 05
def text_to_anagrams():
reader = open('data/text_short.txt', 'rt')
text_list = reader.read()
reader.close()
words_list = text_list.split()
anagram_list = []
anagram_text = ''
anagram = []
for word_ in words_list:
#print(word_)
anagram = word_[::-1]
#print(anagram)
anagram_list.append(anagram)
for w in anagram_list:
anagram_text += (w + ' ')
print(f"Source text is:\n{text_list}\n")
print(f"Anagram text is:\n{anagram_text}\n")
# task 06
def page_rank_like():
pairs_list = [
('a', 'b'),
('a', 'c'),
('d', 'c'),
('a', 'c'),
('e', 'm'),
('e', 'c'),
('f', 'm')
]
def_rank = 1
page_rank_dict = {}
page_links_dict_02 = {}
# Get all links per page
for key, value in pairs_list:
page_links_dict_02.setdefault(key, []).append(value)
page_links_dict_02.setdefault(value, []).append(key)
page_rank_dict.setdefault(key, def_rank)
page_rank_dict.setdefault(value, def_rank)
for page_ in page_links_dict_02:
print(f"{page_}:{page_rank_dict[page_]} {page_links_dict_02[page_]}")
#names_to_bands()
#insert_info_in_dict()
#every_word_in_paragraph_counter()
#word_reuse_counter()
#text_to_anagrams()
page_rank_like()