Python中文本文件索引实现:四位码关联姓名列表查询
实现四位代码匹配对应姓名的解决方案
没问题,我来帮你一步步搞定这个功能!下面用Python来做示例——它语法简洁,很适合这类小任务,而且容易理解和修改。
核心思路
我们需要把文本文件里的代码和姓名列表按顺序一一对应,当用户输入代码时,找到它在代码列表中的索引,再用这个索引去姓名列表里取对应的名字。
详细实现步骤
1. 准备你的文件和数据
假设你的代码文件名叫codes.txt,内容格式是空格分隔的四位数字:
4317 2352 2315
姓名列表要和代码的顺序严格对应,比如:["John", "Jen", "James", "Joe"](注意第一个代码对应第一个姓名,以此类推)
2. 完整代码示例
# 读取代码文件并处理成列表 with open('codes.txt', 'r') as file: # 读取文件内容,去掉首尾空白,再按空格分割成单个代码的列表 code_list = file.read().strip().split() # 定义姓名列表,顺序必须和code_list完全匹配 name_list = ["John", "Jen", "James", "Joe"] # 验证用户输入(确保是四位数字) while True: user_input = input("请输入四位数字代码:").strip() if len(user_input) == 4 and user_input.isdigit(): break print("⚠️ 请输入有效的四位数字代码!") # 查找匹配的姓名 try: # 获取输入代码在列表中的索引 code_index = code_list.index(user_input) # 根据索引取出对应姓名 matched_name = name_list[code_index] print(f"✅ 匹配到的姓名:{matched_name}") except ValueError: # 处理代码不存在的情况 print("❌ 输入的代码不存在,请检查后重试!")
3. 代码解释
- 读取文件:用
with open语句可以自动关闭文件,避免资源泄漏;strip()去掉文件内容首尾的换行/空格,split()把空格分隔的代码拆成列表。 - 输入验证:用
while循环确保用户输入的是四位数字,避免无效输入干扰后续逻辑。 - 索引匹配:用
list.index()方法找到代码的位置,再通过索引从姓名列表取值;如果代码不存在,index()会抛出ValueError,我们用try-except捕获并提示用户。
注意事项
- 一定要保证
code_list和name_list的顺序完全对应,否则会出现匹配错误! - 如果你的代码文件里是每行一个代码(不是空格分隔),只需要把
split()改成splitlines()即可。
内容的提问来源于stack exchange,提问作者Jonny Zervas




