如何用Python编写返回基于关键词切换的布尔值列表的脚本
解决方案
你需要维护一个状态变量跟踪当前应返回的布尔值,每次遇到关键词时切换这个状态,而不是仅给关键词设为False。正确实现代码如下:
def flick_switch(lst): current_state = True result = [] for item in lst: if item == "switch": # 遇到关键词就切换状态 current_state = not current_state # 无论是否为关键词,都将当前状态加入结果列表 result.append(current_state) return result
逻辑说明
- 初始化
current_state为True,对应题目要求的初始布尔值 - 遍历输入列表的每个元素:
- 若元素是
"switch",将current_state取反(完成状态切换) - 将当前的
current_state添加到结果列表中
- 若元素是
- 此逻辑可实现:遇到关键词时,当前元素及后续元素的布尔值统一切换,直到下一个关键词再次触发切换
测试验证
用你提供的示例输入测试:
test_input = ["hello", "what", "switch", "am", "i", "doing", "switch", "here"] print(flick_switch(test_input)) # 输出:[True, True, False, False, False, False, True, True]
完全符合期望输出。
原代码问题分析
你之前的代码仅简单判断元素是否为关键词,直接添加固定的True/False,没有维护状态切换的逻辑,因此无法实现后续元素布尔值跟随关键词切换的需求。
内容的提问来源于stack exchange,提问作者qwerty
相关产品推荐
相关产品推荐

