一个可能的解决方案是找到带有 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
提交
取消