#1. There is a list of mac addresses - create a list of commands to delete this mac #[‘aabbcc’, ‘a1b1c1’] -> [‘curl -X DELETE https://marina.ring.com/aabbcc’, ‘curl -X DELETE https://marina.ring.com/a1b1c1’] macs = ['aabbcc', 'a1b1c1', 'cc1aa1'] commands = [] for n in macs: new_value=f'curl -X DELETE https://marina.ring.com/{n}' commands.append(new_value) print(commands) #2. There is a string, for each letter return the position of last occurrence. #‘abracadabra’ -> {'a': 10, 'b': 8, 'r': 9, 'c': 4, 'd': 6} letters="abracadabra" result = {} count = 0 for l in letters: result[l] = count count += 1 print(result) #2.*There is a list of integers, create a dict with count of each element (have a look at defaultdict) #[1, 2, 4, 6, 2, 7, 1, 2, 1, 2, 2] -> {1: 3, 2:5, 4:1, 6:1, 7:1} from collections import defaultdict int_list = [1, 2, 4, 6, 2, 7, 1, 2, 1, 2, 2] dict1 = defaultdict(lambda: 0) for m in int_list: dict1[m] += 1 print(dict(dict1)) #3. There is a list of integers, return count of even elements: #[1, 2, 3, 4, 5, 6, 6, 6,7, 8, 22] -> 7 int_list = [1, 2, 3, 4, 5, 6, 6, 6,7, 8, 22] count = 0 for n in int_list: if n%2==0: count += 1 print(count) #4. There is a list of integers, return only those elements that can be divided by position index (add 0s) #[0, 3, 3, 6, 12, 7, 4, 21] -> [0, 3, 6,12, 21] ints = [0, 3, 3, 6, 12, 7, 4, 21] result = [] started = False for count, item in enumerate(ints): if not started: started = True result.append(item) continue if item%count==0: result.append(item) print(result) #5. Turn letters on even positions uppercase and on odd positions lowercase #"quick BROWN fox JUMPS over THE lazy DOG" -> 'QuIcK BrOwN FoX JuMpS OvEr tHe lAzY DoG' phrase = "quick BROWN fox JUMPS over THE lazy DOG" new_phrase = [] count = 0 for item in phrase: if count%2==0: item = item.upper() new_phrase.append(item) count += 1 print(''.join(new_phrase))