一個可能的解決方案是找到帶有 id 的項目的索引并使用pop:todo_list = [{'ID': 5, 'TodoItem': 'walk', 'isDone': False}]def remove_item(ID): if not any(todoItem['ID'] == ID for todoItem in todo_list): return 'item does not exist' # get index of id idx = next(i for i, e in enumerate(todo_list) if e['ID'] == ID) # remove and return return todo_list.pop(idx)print(remove_item(4))print(remove_item(5))print(todo_list)輸出item does not exist{'isDone': False, 'ID': 5, 'TodoItem': 'walk'}[]您第一次嘗試的問題是,當您這樣做時:TodoList=RemovedList在函數內部,它會在函數內部創建一個新的局部變量,即使存在同名的全局變量。在您的第二次嘗試中,您需要設置為全局而不是非本地:todo_list = [{'ID': 5, 'TodoItem': 'walk', 'isDone': False}]def RemoveItem(ID): global todo_list if not any(todoItem['ID'] == ID for todoItem in todo_list): return 'item does not exist'; todo_list = list(filter(lambda todoItem: todoItem['ID'] != ID, todo_list))RemoveItem(5)print(todo_list)輸出[]
添加回答
舉報
0/150
提交
取消