Python3中如何通过用户输入匹配Account number键查询对应字典
账号匹配查询实现方案
核心思路
你当前的代码将每个用户的信息存储为独立字典,没有统一的查询入口,我们可以先把所有账户归集到一个以「Account number」值为键的总数据库字典中,后续查询可以直接匹配,执行效率更高。
实现步骤
- 归集所有账户到统一数据库
- 获取用户输入的账号,自动清理首尾空格避免匹配失败
- 校验账号是否存在,存在则打印对应信息,不存在则给出提示
完整可运行代码
# Dictionary entry for John key123 = { "Account number": "123", "First Name": "John", "Last Name": "Hutch", "Savings Amount": 1964, "Checkings Amount": 6437 } # Dictionary entry for Suzie key456 = { "Account number": "456", "First Name": "Suzie", "Last Name": "Gonzalez", "Savings Amount": 2001, "Checkings Amount": 1256 } # Dictionary entry for Zeke key789 = { "Account number": "789", "First Name": "Zeke", "Last Name": "Pena", "Savings Amount": 1200, "Checkings Amount": 2313 } # 构建账号查询数据库,以账号为键,用户信息字典为值 account_db = { "123": key123, "456": key456, "789": key789 } # 获取用户输入 input_account = input("请输入要查询的账号:").strip() # 匹配查询 if input_account in account_db: print("\n查询到的账户信息:") for key, value in account_db[input_account].items(): print(f"{key}: {value}") else: print("\n未找到对应账号的信息,请检查输入是否正确")
其他可选实现(适合账号可能重复的场景)
如果存在重复账号的情况,可以把所有账户放到列表中遍历匹配:
account_list = [key123, key456, key789] input_account = input("请输入要查询的账号:").strip() matched_accounts = [acc for acc in account_list if acc["Account number"] == input_account] if matched_accounts: print(f"\n共查询到{len(matched_accounts)}个符合条件的账户:") for idx, acc in enumerate(matched_accounts, 1): print(f"\n第{idx}个账户:") for k, v in acc.items(): print(f"{k}: {v}") else: print("\n未找到对应账号的信息")
内容的提问来源于stack exchange,提问作者Glow v2
相关产品推荐
相关产品推荐

