如何在Python中遍历两个列表并获取用户选择输入
实现分步选择两个列表的用户输入
你可以写一个复用的函数来处理列表选择逻辑,避免重复代码,先完成list1的选择,再处理list2的选择,示例代码如下:
def get_user_choice(options_list, prompt_text): # 显示提示文本 print(prompt_text) # 遍历列表,显示带序号的选项(序号从1开始,符合用户输入习惯) for idx, option in enumerate(options_list, start=1): print(f"{idx}. {option}") # 循环直到用户输入合法选项 while True: try: choice_idx = int(input("请输入选项序号:")) # 检查序号是否在有效范围内 if 1 <= choice_idx <= len(options_list): return options_list[choice_idx - 1] else: print(f"请输入1到{len(options_list)}之间的数字!") except ValueError: print("请输入有效的数字序号!") # 定义你的两个列表 list1 = ['E1', 'E2', 'E3'] list2 = ['api1', 'api2', 'api3', 'api4'] # 先选择list1的选项 selected_e = get_user_choice(list1, "请选择一个E选项:") print(f"你选择了E选项:{selected_e}") # 再选择list2的选项 selected_api = get_user_choice(list2, "请选择一个API选项:") print(f"你选择了API选项:{selected_api}")
代码说明:
get_user_choice是通用选择函数,接收待选列表和提示文本两个参数,list1和list2都能复用这个逻辑- 使用
enumerate(options_list, start=1)让选项序号从1开始,更贴合用户的输入习惯(多数用户不习惯从0开始的序号) while True循环配合try-except处理用户输入非数字或超出范围的情况,避免程序直接崩溃- 先调用函数处理list1,获取选择结果后再处理list2,完美实现你需要的依次选择效果
如果不想使用函数,也可以直接分两次写重复逻辑,但复用函数更简洁,也更符合Python的代码风格。
内容的提问来源于stack exchange,提问作者bprat3
相关产品推荐
相关产品推荐

