def choose_from_list(items, label_fn): for i, item in enumerate(items, start=1): print(f"{i}. {label_fn(item)}") print("0. Back") choice = input("> ").strip() if choice == "0": return None try: return items[int(choice) - 1] except (ValueError, IndexError): print("Invalid choice") return None