Stack Overflow на русском Asked by Stud200891 on January 18, 2021
Задача состоит в следующем:
Создать функцию с данными для записи в файл json.
Она должна создавать и возвращать словарь со случайным количеством ключей (не менее 5 но не более 20 ключей). Ключи – уникальные случайные строки длиной в 5 символов из строчных букв английского алфавита (можно с повторениями символов). Значения: или целое число в диапазоне от -100 до 100, или число типа float в диапазоне от 0 до 1, или True/False. Выбор значения должен быть равновероятным,
т. е. вероятность того, что значение будет целым, такая же, как и вероятность того, что будет типа float или типа bool.
я сгенерировал ключи:
def create_json_key():
json_key = [chr(random.randint(ord('a'), ord('z'))) for _ in range(5)]
return "".join(json_key)
и финальную функцию:
def create_randome_dict():
new_dict = {}
return new_dict
а как сделать кол-во этих ключей от 5 до 20 и их значения согласно условию?
По всем правилам искусства: random.choice(string.ascii_lowercase)
для случайных слов, random.choice
и lambda
для выбора одного из трёх вариантов значения, random.choice
для логических значений, dict comprehension для словаря.
import pprint
import random
import string
def random_key():
return ''.join(random.choice(string.ascii_lowercase) for _ in range(5))
def random_value():
return random.choice([
lambda: random.randint(-100, 100),
lambda: random.uniform(0, 1),
lambda: random.choice([False, True])
])();
def random_dict():
return {random_key(): random_value() for _ in range(random.randint(5, 20))}
pprint.pprint(random_dict())
Результат:
{'juqjq': 0.22354539670175022,
'lfvpz': 16,
'nnjry': 0.9879120349690252,
'tjmey': 0.8362708395652476,
'vquxd': -84,
'xpmck': True,
'ynqvy': 0.6540820906502444,
'yovac': False,
'ysuml': False}
Answered by Stanislav Volodarskiy on January 18, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP