добавление в список из словаря? - PullRequest
0 голосов
/ 31 марта 2019

Попытка добавить авторов и названия их книг в список внутри словаря, чтобы каждый автор мог поддерживать несколько названий книг. В коде у меня уже есть 3 автора, и у каждого по 1 названию книги, но они должны иметь возможность поддерживать как минимум еще 1 название книги.

У меня уже есть значения (названия книг) ключей (авторов), вложенных в список внутри словаря, но я не знаю, как добавить больше значений к существующим ключам, которые находятся внутри существующего списка.

readings = {'George Orwell': ['1984'], 'Harper Lee': ['To Kill a Mockingbird'], 'Paul Tremblay': ['The Cabin at the End of the World']}  # list inside of dict.

Мне нужно использовать следующий код, чтобы добавить новые названия книг в список

def add(readings):  # appending to list will go here
    author = input('\nEnter an author: ')
    if author in readings:  # check if input already inside dict.
        bookTitle = readings[author]
        print(f'{bookTitle} is already added for this author.\n')
    else:
        bookTitle = input('Enter book title: ')
        bookTitle = bookTitle.title()
        readings[author] = bookTitle
        print(f'{bookTitle} was added.\n')

Я ожидаю, что вы не сможете добавить одно и то же название книги дважды и не сможете добавить одного и того же автора дважды. Ожидается, что я смогу ввести названия книг для существующего автора (или нового автора, который еще не существует) во время работы программы, затем я смогу просматривать всех авторов и их названия книг через «командное меню». (не показано).

Ответы [ 2 ]

0 голосов
/ 31 марта 2019

Итак, вы пытаетесь добавить несколько книг автору, это правильно? Поскольку значения в вашем словаре уже сохранены в виде списка, вы можете попробовать выполнить -

readings[author].append(bookTitle)

вместо

readings[author] = bookTitle
0 голосов
/ 31 марта 2019

Ваш рабочий процесс немного выключен.После проверки автора, затем проверьте наличие книги в списке книг этого автора.Вы можете добавить заголовок в список книг, используя .append.Попробуйте это:

def add(readings):  # appending to list will go here
    author = input('\nEnter an author: ')
    if author in readings:  # check if input already inside dict.
        books = readings[author]
        print(f'Found {len(books)} books by {author}:')
        for b in books:
            print(f' - {b}')
    else:
        readings[author] = []

    bookTitle = input('Enter book title: ')
    bookTitle = bookTitle.title()

    if bookTitle in readings[author]:
        print(f'{bookTitle} is already added for this author.')
    else:
        readings[author].append(bookTitle)
        print(f'Add "{bookTitle}"')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...