import re from collections import defaultdict def czy_powtarzajace_cyfry(numer): return bool(re.search(r'(\d)\1\1', numer)) def liczba_numerow(nazwa_pliku): liczba = 0 with open(nazwa_pliku, 'r') as plik: for linia in plik: numer = linia.strip() if czy_powtarzajace_cyfry(numer): liczba += 1 return liczba print("Odp. 1: ", liczba_numerow('numery.txt')) def liczba_rodzin_numerow(nazwa_pliku): dlugosci = set() with open(nazwa_pliku, 'r') as plik: for linia in plik: numer = linia.strip() dlugosci.add(len(numer)) return len(dlugosci) print("Odp. 2: ", liczba_rodzin_numerow('numery.txt')) def zapisz_rodziny_numerow(nazwa_pliku_we, nazwa_pliku_wy): rodziny = defaultdict(list) with open(nazwa_pliku_we, 'r') as plik_we: for linia in plik_we: numer = linia.strip() rodziny[len(numer)].append(numer) with open(nazwa_pliku_wy, 'w') as plik_wy: for dlugosc in sorted(rodziny.keys()): numery = rodziny[dlugosc] numery.sort() plik_wy.write(' '.join(numery) + '\n\n') zapisz_rodziny_numerow('numery.txt', 'rodziny_numerow.txt')