52 lines
2.1 KiB
Python
52 lines
2.1 KiB
Python
|
|
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
|