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

列表推导式技术疑问:条件不满足时如何填充空字符串?

当然可以用列表推导式实现!

你之前的写法是把i == 4作为过滤条件,所以只会保留满足条件的元素,自然就只得到["Bob"]。要实现你想要的效果,只需要把条件判断移到生成元素的逻辑里,而不是用来过滤元素:

[if i == 4 then "Bob" else "" | i <- [3..6]]

原理说明:

列表推导式的基本结构是 [生成元素的表达式 | 生成器, 过滤条件]。你原来的写法把i ==4放在了过滤条件的位置,这会让推导式只保留符合条件的i对应的元素。而现在的写法是遍历[3..6]中的每一个i,对每个i都通过if-else判断生成对应的字符串:

  • 当i ==4时,生成"Bob"
  • 其他情况生成空字符串""

运行这个推导式,得到的结果正好是你期望的:["", "Bob", "", ""]。

如果你的需求是返回空列表而不是空字符串(比如某个条件不满足时生成空列表元素),只需要把""换成[]就行,比如:

[if i ==4 then ["Bob"] else [] | i <- [3..6]]

这个会得到[[], ["Bob"], [], []]。

内容的提问来源于stack exchange,提问作者Tim Coulter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:12:09