簡體   English   中英

如果操作已完成,我如何使用帶有 if-else 語句的列表理解來打印?

[英]How do I use list comprehension with an if-else statement to print if the action has been completed or not?

所以我有一個代碼要求找到驅動程序的名稱,如果它存在則從主驅動程序詳細信息列表中刪除該列表。 我使用嵌套列表來實現這一點。 刪除列表后,我希望顯示一條消息,提示“記錄已刪除”或“找不到記錄”。

driver_details=[["Ken Block","55","Hoonigan","Mustang"], ["Ken Miles","48","Ford","Ford GT"]]

def delete_driver():
    """This function is used to delete driver details
    by entering the driver name"""
    global driver_details
    driver_name=input("Enter driver name: ")
    if driver_name in driver_details:
        driver_details=[x for x in driver_details if x[0] not in driver_name]
        print("Driver details deleted")
    else:
        print("Record Not Found")
    print(driver_details)
    options()

這似乎對我不起作用。

但是當我嘗試這個時:

    """This function is used to delete driver details
    by entering the driver name"""
    global driver_details
    driver_name=input("Enter driver name: ")
    driver_details=[x for x in driver_details if x[0] not in driver_name ]
    print("Driver details deleted")
    print(driver_details)
    options()

它確實刪除了記錄。

我希望答案打印為 Record Deleted 但我一直收到 Record not found 即使驅動程序的名稱確實存在。 我怎么能為此添加 if 語句?

你的代碼對我來說工作得很好。 但是,有 2 個更正:

1.你必須展平嵌套字典driver_details來簽in屬性

  1. drivers_details 中有錯字driver_name in drivers_details應該是driver_name in driver_details

driver_details=[["Ken Block","55","Hoonigan","Mustang"], ["Ken Miles","48","Ford","Ford GT"]]

def delete_driver():
    """This function is used to delete driver details
    by entering the driver name"""
    global driver_details
    driver_name=input("Enter driver name: ")
    if driver_name in [item for sublist in driver_details for item in sublist]:  #flattened nested list
        driver_details=[x for x in driver_details if x[0] not in driver_name]
        print("Driver details deleted")
    else:
        print("Record Not Found")
    print(driver_details)

這是從driver_details中刪除的方法:

driver_details2 = [dd for dd in driver_details if dd[0] != driver_name]
driver_details[:] = driver_details2  # Overwrite original list.

您的代碼還有其他一些問題(如發布的那樣),例如drivers_list變量。 您可以這樣定義它:

drivers_list = [dd[0] for dd in driver_details]

def delete_driver(): """此 function 用於通過輸入驅動程序名稱刪除驅動程序詳細信息""" global driver_details driver_name=input("Enter driver name: ") if driver_name in [item for sublist in driver_details for item in sublist ]: #flattened nested list driver_details=[x for x in driver_details if x[0] not in driver_name] print("Driver details deleted") else: print("Record Not Found") print(driver_details) Followdef delete_driver(): """這個 function 用於通過輸入驅動程序名稱來刪除驅動程序詳細信息""" global driver_details driver_name=input("Enter driver name: ") if driver_name in [item for sublist in driver_details for item in sublist]: #flattened nested list driver_details=[x for x in driver_details if x[0] not in driver_name] print("Driver details deleted") else: print("Record Not Found") print(driver_details)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM