Lambda表达式排序报错:仅asc模式正常运行,其他选项出错
Lambda表达式实现列表排序的报错修复
错误原因分析
sorted函数的reverse参数要求传入布尔值(True/False),原代码里写的reverse="True"是字符串类型,会触发类型错误;- 当输入为"none"时,原代码直接把字符串"none"传给
reverse,既不符合参数类型要求,也没实现“不排序返回原列表”的需求。
修正后的代码
y = input("Write 'asc','dec', 'none'") converter = lambda x: sorted(x) if y == "asc" else (sorted(x, reverse=True) if y == "dec" else x) print(converter(x=[1,2,4,6,10,0,8,5]))
修正说明
- 将
reverse="True"改为reverse=True,传入正确的布尔值; - "none"分支直接返回原列表
x,实现不排序的需求; - 调整Lambda的嵌套逻辑,让条件判断更清晰,避免参数类型错误。
内容的提问来源于stack exchange,提问作者hunny
相关产品推荐
相关产品推荐

