Python如何搜索列表并打印或返回匹配输入ID的对应条目
解决方案
实现逻辑
- 遍历存储车票信息的
user列表,每条记录的第一个元素即为乘客ID - 将每条记录的ID统一转换为字符串类型后,和用户输入的
vid做匹配 - 收集所有匹配的条目后统一输出
完整代码示例
# 示例user列表(注意ID必须存为字符串,否则横杠会被Python识别为减号做运算) user = [ ["5134123-5", "first class", "$20"], ["5462112-3", "business class", "$10"], ["235467-9", "economy class", "$5"] ] def menu_2(): print("===================================") print(" Tickets ") print("===================================") vid = str(input("Enter the ID: ")) # 初始化列表存储匹配条目 matched_tickets = [] for ticket in user: # 统一转字符串避免类型不匹配导致搜索失败 if str(ticket[0]) == vid: matched_tickets.append(ticket) # 结果输出逻辑 if matched_tickets: print(f"共找到{len(matched_tickets)}条匹配记录:") for item in matched_tickets: print(f"乘客ID:{item[0]},车票类型:{item[1]},票价:{item[2]}") # 如果需要返回匹配结果给其他逻辑调用,取消下方注释即可 # return matched_tickets else: print("未查询到对应ID的车票记录") # return []
注意事项
- 定义
user列表时如果ID没有加引号,Python会自动计算数字-数字的结果作为ID值,会导致和用户输入的带横杠字符串无法匹配,必须把ID用引号包裹为字符串类型 - 如果需要支持多条同ID的记录搜索,现有逻辑已经天然支持,不需要额外修改
内容的提问来源于stack exchange,提问作者Franco Piero
相关产品推荐
相关产品推荐

