You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表推导式中使用三元if else未得到预期结果原因咨询

问题根因说明
  • 你的列表推导式本身逻辑完全正常,不存在写法失效的问题,问题出在输出环节:列表推导式执行后会生成新的列表对象,你将处理后的结果赋值给了rslt变量,但最后一行代码仍然打印的是未修改的原列表data,所以看不到处理后的效果。
  • 额外优化点:Python3中/运算符执行的是浮点数除法,比如偶数4经过4/2处理后会得到2.0,如果你预期得到整数结果,可以替换为整数除法运算符//。

修正后的代码示例

entry = input('Enter a number list ').split()

# Convert all items to integer
data = [int(x) for x in entry]

print(data)

rslt = [(a//2 if a%2==0 else 2*a) for a in data]

# 打印处理后的结果变量
print(rslt)

运行效果示例

输入3 4 5后的输出:

Enter a number list 3 4 5
[3, 4, 5]
[6, 2, 10]

[Program finished]

内容的提问来源于stack exchange,提问作者Tuchar Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:36:05