дано список чисел сформувати словник де кожному числу відповідає кілік

  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
# - дано список чисел - сформувати словник де кожному числу відповідає кілікість раз це число зустрічається у списку
# [6, 5, 3, 5, 9, 5, 4, 4, 3, 2, 7, 3, 6, 7, 2] -> {2: 2, 3: 3, 4: 2, 5: 3, 6: 2, 7: 2, 9: 1}
# [7, 7, 4, 2, 8, 9, 2, 6, 4, 8, 8, 5, 7, 3, 2] -> {2: 3, 3: 1, 4: 2, 5: 1, 6: 1, 7: 3, 8: 3, 9: 1}
list_1 = [6, 5, 3, 5, 9, 5, 4, 4, 3, 2, 7, 3, 6, 7, 2]
list_2 = [7, 7, 4, 2, 8, 9, 2, 6, 4, 8, 8, 5, 7, 3, 2]
def convert_to_dict(list):
list.sort()
result = {}
for value in list:
if value in result:
result[value] += 1
else:
result[value] = 1
return result
print(f'1. Answer: {convert_to_dict(list_2)}')
# - дано список чисел - сформувати словник де кожному числу відповідає останній індекс входження такого числа
# [7, 7, 4, 2, 8, 9, 2, 6, 4, 8, 8, 5, 7, 3, 2] -> {7: 12, 4: 8, 2: 14, 8: 10, 9: 5, 6: 7, 5: 11, 3: 13}
# [4, 6, 4, 4, 6, 5, 7, 9, 6, 6, 5, 7, 5, 5, 3] -> {4: 3, 6: 9, 5: 13, 7: 11, 9: 7, 3: 14}
ls_1 = [7, 7, 4, 2, 8, 9, 2, 6, 4, 8, 8, 5, 7, 3, 2]
ls_2 = [4, 6, 4, 4, 6, 5, 7, 9, 6, 6, 5, 7, 5, 5, 3]
def last_index(list):
dictionary = {}
for indx, value in (enumerate(list)):
dictionary[value] = indx
return dictionary
print(f'2. Answer: {last_index(ls_2)}')
# - дано список чисел - сформувати словник де кожному числу відповідає список індексів на яких воно зустрічається
# [4, 6, 4, 4, 6, 5, 7, 9, 6, 6, 5, 7, 5, 5, 3] -> {4: [0, 2, 3], 6: [1, 4, 8, 9], 5: [5, 10, 12, 13], 7: [6, 11], 9: [7], 3: [14]}
lst = [4, 6, 4, 4, 6, 5, 7, 9, 6, 6, 5, 7, 5, 5, 3]
def all_index(list):
dictionary = {}
for value in list:
indexes = [ i for i in range(len(list)) if list[i] == value]
dictionary[value] = indexes
return dictionary
print(f'3. Answer: {all_index(lst)}')
# - дано список рядків - сформувати список словників де кожен словник - це символ - кількість входжень
# "abracadabra somethingnewforus testandtestagain" -> [{'c': 1, 'd': 1, 'a': 5, 'r': 2, 'b': 2}, {'g': 1, 'n': 2, 'f': 1, 't': 1, 'u': 1, 'h': 1, 'm': 1, 'o': 2, 'e': 2, 'r': 1, 'i': 1, 's': 2, 'w': 1}, {'g': 1, 'n': 2, 't': 4, 'd': 1, 'e': 2, 'a': 3, 'i': 1, 's': 2}]
string = "abracadabra somethingnewforus testandtestagain"
text = string.split(' ')
answer = []
for word in text:
result = {}
for letter in word:
if letter in result:
result[letter] += 1
else:
result[letter] = 1
answer.append(result)
print(f'4. Answer: {answer}')
# - дано два словника ключ-число - додати ці словники (якщо ключ зустрічається в обох - то значення додати, інакше - ключ-значення)
# {2: 8, 5: 11, 7: 3, 1: 5, 45: 14}, {3: 13, 5: 10, 8: 2, 1: 3, 45: 8, 4: 14} -> {1: 8, 2: 8, 3: 13, 4: 14, 5: 21, 7: 3, 8: 2, 45: 22}
dct_1 = {2: 8, 5: 11, 7: 3, 1: 5, 45: 14}
dct_2 = {3: 13, 5: 10, 8: 2, 1: 3, 45: 8, 4: 14}
for key in dct_2:
if key in dct_1:
dct_2[key] = dct_2[key] + dct_1[key]
for key in dct_1:
if key not in dct_2:
dct_2.update({key: dct_1[key]})
print(f'5. Answer: {dict(sorted(dct_2.items()))}')
# - дано два списки слів - повернути список слів, які зустрічаються в першому списку частіше ніж у другому
# ["q", "qq", "w", "w", "ww", "as"], ["a", "q", "qq", "qq", "ww"] -> ['as', 'w']
words_1 = ["q", "qq", "w", "w", "ww", "as"]
words_2 = ["a", "q", "qq", "qq", "ww"]
answer_6 = []
def cal_count(array):
result = {}
for word in array:
if word in result:
result[word] +=1
else:
result[word] = 1
return result
first = cal_count(words_1)
second = cal_count(words_2)
for value in first:
if value in second:
if first[value] > second[value]:
answer_6.append(value)
else:
answer_6.append(value)
print(f'6. Answer {answer_6}')