第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù)用戶輸入提供的一個值從列表中刪除一個字典 - python

根據(jù)用戶輸入提供的一個值從列表中刪除一個字典 - python

呼如林 2023-04-18 14:49:30
我有初始代碼:books = []def add_book():    name = input('Input the name of the book: ')    author = input('Input the author: ')    print('Book added successfully.')    books.append(        {            'name': name,            'author': author,            'read': False        }    )我需要用戶能夠提供書名,如果他的輸入匹配中的名稱books,則刪除其引用的整個字典。我想出了這段代碼:def delete_book():    user_input = input('Input the name of the book to be deleted: ')    for book in books:        for key, value in book.items():            if book['name'] == user_input:                books.remove(book)但它不起作用..我瀏覽了大約 2 個小時來找到解決方案,作為初學者我無法弄清楚,也許你們可以讓我清醒一下。read現(xiàn)在再看一下字典中的鍵值。我希望用戶能夠將值更改為 True。所以我嘗試了很多版本,但這更難。這就是我所擁有的:def mark_read():  # TODO REVIEW !!!!    book_name = input('Input name of the book: ')    for book in books:        if book == book_name:            user_input = input('Mark book as read? (y/N): ')            if user_input == 'N' or 'n':                print('No changes were made')            elif user_input == 'Y' or 'y':                book.update(read=True)        else:            print('The specified book is not currently in our database.')那么你能告訴我我錯在哪里給我一個更好但新手可讀的選擇嗎?
查看完整描述

2 回答

?
瀟瀟雨雨

TA貢獻1833條經(jīng)驗 獲得超4個贊

刪除代碼:


def delete_book():

    user_input = input('Input the name of the book to be deleted: ')


    for i,book in enumerate(books):

        if book['name'] == user_input:

            del books[i]

標記為已讀的代碼:


def mark_read():  # TODO REVIEW !!!!

    book_name = input('Input name of the book: ')

    f=0 #flag to see if book is present in dict

    for book in books:

        if book['name'] == book_name:

            f=1

            user_input = input('Mark book as read? (y/N): ')

            if user_input == 'N' or 'n':

                print('No changes were made')

            elif user_input == 'Y' or 'y':

                book['read']=True

            break #if book is found, you can exit the loop early

    if f==0:

        print('The specified book is not currently in our database.')


查看完整回答
反對 回復 2023-04-18
?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

您的代碼的問題在于,當您只需要一個字段 () 時,您正在循環(huán)字典name。因此,您正在刪除具有字典第一個字段的書,但您試圖再次刪除具有字典下一個字段的條目,這是不可能的。


您不需要遍歷字典的所有字段來只比較一個字段。以下作品:


books =[{'name': "Hello", "author": "Arthur"}, {'name': "Hi", "author": "Vicky"}]


user_input = input('Input the name of the book to be deleted: ')


for book in books:

    if book['name'] == user_input:

        books.remove(book)

            

print(books)

輸入“Hi”時的結果:


[{'name': 'Hello', 'author': 'Arthur'}]


查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號