29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
import random
|
|
from typing import List, Tuple
|
|
|
|
Record = Tuple[str, str]
|
|
|
|
NAME_POOL = (
|
|
"User_Alex", "User_Bob", "User_Cat", "User_Dan", "User_Eva",
|
|
"User_Fox", "User_Geo", "User_Hen", "User_Ira", "User_Leo"
|
|
)
|
|
|
|
def generate_records(n: int, repeat_names: bool = False, seed: int = 42) -> List[Record]:
|
|
"""Генерирует n кортежей (имя, телефон)."""
|
|
rng = random.Random(seed)
|
|
if repeat_names:
|
|
return [
|
|
(rng.choice(NAME_POOL), str(rng.randint(10**9, 10**10 - 1)))
|
|
for _ in range(n)
|
|
]
|
|
return [
|
|
(f"User_{i:05d}", str(10**9 + i))
|
|
for i in range(n)
|
|
]
|
|
|
|
def prepare_records_variants(records: List[Record], seed: int = 42) -> Tuple[List[Record], List[Record]]:
|
|
"""Возвращает пару: (перемешанный список, отсортированный по имени список)."""
|
|
shuffled = records.copy()
|
|
random.Random(seed).shuffle(shuffled)
|
|
sorted_records = sorted(records, key=lambda rec: rec[0])
|
|
return shuffled, sorted_records |