如何用Python在二维列表中查找特定字符串?新手密码系统开发求助
解决二维列表匹配字符串的问题
先假设你的二维列表是用来存储账号密码的,结构大概像这样:
user_accounts = [["user1", "pass123"], ["user2", "pass456"]]
新手做这类功能常踩的坑,要么是直接拿单个输入字符串和二维列表里的子列表硬比,要么是错误用list()把输入字符串拆成了单个字符列表,自然没法匹配。下面给你直接能用的解决方法:
正确的匹配逻辑
- 先获取用户输入的账号和密码:
input_name = input("请输入用户名:").strip() input_pwd = input("请输入密码:").strip()
(加.strip()是为了去掉用户不小心输入的前后空格,避免不必要的匹配失败)
- 遍历二维列表,逐一对比每组账号密码:
login_success = False for account in user_accounts: # account是二维列表里的子列表,account[0]存用户名,account[1]存密码 if account[0] == input_name and account[1] == input_pwd: login_success = True break # 根据匹配结果输出提示 if login_success: print("登录成功!") else: print("账号或密码错误!")
你之前操作的问题点
- 用
list()处理输入字符串完全没必要,比如list("user1")会把字符串拆成['u','s','e','r','1'],和你二维列表里的子列表结构完全不匹配 - 如果直接写
if [input_name, input_pwd] in user_accounts其实也能实现匹配,但新手容易因为输入的空格、大小写问题导致失败,用遍历的方式更容易调试排查问题
小建议
变量名尽量起得直观些,比如把a改成user_accounts,b改成input_username,后续自己看代码也能一眼看懂逻辑。
内容的提问来源于stack exchange,提问作者Cooldragon09
相关产品推荐
相关产品推荐

