Python入门求助:如何将数值列表转换为布尔值列表
将数值列表转换为布尔值列表的问题解决
你的代码存在几个关键问题,导致无法得到预期的布尔值列表:
- 函数名拼写错误:
covert_to_boolean应为convert_to_boolean - 循环逻辑错误:遍历列表时,遇到第一个满足
num >= -10的元素就直接返回True,函数立即终止,不会处理剩余元素,这就是你只得到单一True的原因 - else块逻辑无效:else中的
False没有实际作用,返回原列表lst的逻辑完全不符合需求
正确解法1:列表推导式(简洁高效)
这是Python中处理这类转换最常用的方式:
def convert_to_boolean(lst): return [num <= -10 for num in lst]
测试代码:
lst = [-10.4, -33.6, -1.2, -11.4, -1.1] print(convert_to_boolean(lst)) # 输出: [True, True, False, True, False]
正确解法2:循环构建列表(适合入门理解)
如果你想通过循环逐步处理每个元素,可以这样写:
def convert_to_boolean(lst): result_list = [] for num in lst: # 按规则添加布尔值到结果列表 result_list.append(num <= -10) return result_list
两种方法都能得到你预期的布尔值列表,其中列表推导式更符合Python的简洁风格。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

