import random name_pool = ( "Ivan", "Maria", "Peter", "Anna", "Sergey", "Elena", "Alexey", "Olga", "Dmitry", "Tatyana", "Mikhail", "Natalia", "Andrey", "Irina", "Nikolay", "Svetlana", "Vladimir", "Ekaterina", "Alexander", "Yulia", "Pavel", "Kseniya", "Victor", "Anastasia", "Artem", "Victoria", "Maxim", "Polina", "Daniil", "Sofia", "Evgeny", "Alice", "Stanislav", "Daria", "Georgy", "Veronika", "Kirill", "Margarita", "Timofey", "Arina", "Roman", "Valeria", "Igor", "Alina", "Oleg", "Diana", "Yuri", "Milana", "Vasily", "Eva", "Nikita", "Leonid", "Stepan", "Bogdan", "Gleb", "Matvey", "Arseny", "Denis", "Anton", "Vladislav", "Rodion", "Semyon", "Fedor", "Zahar", "Mark", "Lev", "Artyomiy", "Yaroslav", "Timur", "Ruslan", "Boris", "Vadim", "Konstantin", "Gennady", "Pavel", "Ilya", "Egor", "Nazar", "Damir", "Vsevolod", "Platon", "Savely", "Svyatoslav", "Miron", "Arkady", "Yevgeny", "Emil", "Arthur", "Demyan", "Rinat", "Marat", "Farid", "Rustam", "Ilshat", "Azamat", "Marcel", "Albert", "Eduard", "Viktor", "Rostislav", "Gennady", "Yegor", "Petr", "Zakhar", "Saveliy", "Gavriil", "Nestor", "Ignat", "Prokhor", "Taras", "Severin", "Luka", "Artyomiy", "Radion", "Demyan", "Yefim","Neo", "Max", "Leo", "Sam", "Alex", "John", "Markus", "Kevin", "Daniel", "Robert", "James", "Michael", "David", "Andrew", "Chris", "Brian", "Steven", "Eric", "Thomas", "Ryan", "Justin", "Aaron", "Jason", "Nathan", "Luke" ) fake_names = [ "Zero", "Kopek", "Half", "Quarter", "Eighth", "Pood", "Copper", "Silver", "Gold", "Ninth" ] def generate_phone(length: int = 11) -> str: start = 10 ** (length - 1) end = (10 ** length) - 1 return str(random.randint(start, end)) def generate_dataset(size: int = 10000, sorted_flag: bool = False) -> list: dataset = [ (random.choice(name_pool), generate_phone()) for _ in range(size) ] if sorted_flag: dataset.sort(key=lambda x: x[0]) return dataset def generate_query_set() -> list: return random.sample(name_pool, 100) + fake_names