为了账号安全,请及时绑定邮箱和手机立即绑定

Python:根据 input() 从列表中删除项目?

Python:根据 input() 从列表中删除项目?

至尊宝的传说 2022-08-11 18:11:24
对于我的一项作业,如果我们能添加教授在作业说明中尚未告诉我们要做的新功能,则可以提供额外的学分。这是一个密码保护程序,我正在使用凯撒密码将网站/密码保存到列表中。我正在尝试创建基于用户特定输入的密码删除功能。例如,下面是一个随机模板列表:passwords = [["facebook", "gGjjI%%%66"], ["youtube", "coYtF###12$"]]假设我想删除youtube密码列表中的密码。我做了一些研究,似乎remove()可能是我试图做的事情的一个不错的选择,但我在将其付诸实践时遇到了问题。if choice == '6':    input("Enter the password you want to delete: ")    for keyvalue in passwords:        print(keyvalue[0])    deletePassword = input()    for i in range(len(passwords)):        if deletePassword in passwords[i][0]:            passwords.remove(deletePassword)这里的问题是,在我输入要删除密码的网站名称后,就像在这种情况下的youtube一样,在我点击Enter之后,它会重新打印列表,其中仍然包含我要删除的内容,然后如果我再次点击Enter,它将抛出:ValueError:list.remove(x):x不在列表中关于如何解决这个问题的任何建议,或者为我指出正确的方向,如何以更好的方式做到这一点?
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

取代:

input("Enter the password you want to delete: ")

print("Enter the password you want to delete: ")

(你有两个s,你只需删除第一个的值)input


查看完整回答
反对 回复 2022-08-11
?
皈依舞

TA贡献1851条经验 获得超3个赞

你可以试试这个:


deletePassword = input("Enter the password you want to delete: ")

passwords = [password for password in passwords if password[0] != deletePassword]


查看完整回答
反对 回复 2022-08-11
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

我建议您将密码存储为字典,而不是列表列表。这允许您按名称而不是数字索引(每次修改列表时都会更改)来查找/访问站点。


passwords = [["facebook", "gGjjI%%%66"], ["youtube", "coYtF###12$"]]

passwords = dict(passwords)

# passwords is now {'facebook': 'gGjjI%%%66', 'youtube': 'coYtF###12$'}



if choice == '6':

    print("Enter the site name of the password you want to delete: ")

    for site in passwords:

        print(' ', site)

    deletePassword = input('>')


    if deletePassword in passwords:

        passwords.pop(deletePassword)


查看完整回答
反对 回复 2022-08-11
  • 3 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信