Правильно ли добавляю ключ в словарь? Как вывести на печать ключи в строку?

Есть словарь:

directories = {
 '1': ['1000'],
 '2': ['145'],
 '3': [555],
 '4': []

}

Нужно дозаполнять словарь новыми ключами. Есть ключ уже есть в словаре, то выводить предупреждение. Если нет, то добавлять ключ в словарь и выводить в строку все ключи словаря.

Делаю так:

def ads_shelf(directories):
    input_number = input("Введите номер полки: ")
    if input_number not in directories:
        directories[input_number] = []
        print(f'Ключ успешно добавлен. Текущий перечень ключей:')
    else:
        print(f'Такой ключ существует. Текущий перечень ключей:')

Правильно ли делаю и как вывести ключи в строку принта?


Ответы (2 шт):

Автор решения: eri
if input_number not in directories:
    directories[input_number] = [] 

-- такие штуки обычно делаются через collections.defaultdict(list). С defaultdict новые "полки" добавлять не нужно - они будут создаваться автоматически при записи.

Вывести все ключи просто

print(",".join(directories.keys()))
→ Ссылка
Автор решения: CrazyElf

Вот смотрите, когда вы вот так проверяете, что ключа нет в словаре (и вы это делаете правильно), вам не надо никак специально указывать, что от словаря вы тут хотите именно список ключей, а не что-то другое, у Python 3 такое поведение словарей прописано по умолчанию везде, где используется объект типа dict:

if input_number not in directories:

Поэтому для того, чтобы напечатать список ключей, достаточно взять объект directories как итератор и, например, проставить между его элементами запятые. Питон опять же сам догадается, что вы хотите именно ключи словаря, а не что-то другое:

print(f'Текущий перечень ключей: {",".join(directories)}')
→ Ссылка