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

Python代码优化:能否将代码缩为两行?求y的更优单行实现方法

当然可以!而且确实有比先建二维数组再扁平化更简洁高效的方式来定义y

核心思路是跳过中间二维数组的构建,直接用嵌套推导式一步生成扁平结构,既精简代码又提升内存效率——毕竟不需要额外存储整个二维列表,而是直接逐个产出目标元素。

举个常见场景的例子:假设你的x是一个数值列表,需要让y包含每个元素及其翻倍后的值(比如x = [1,2,3]对应y = [1,2,2,4,3,6]):

原来的写法可能是这样(先建二维数组再扁平化):

x = [1,2,3]
y = [item for sublist in [[i, i*2] for i in x] for item in sublist]

更优的单行y定义可以直接合并嵌套逻辑:

x = [1,2,3]
y = [val for i in x for val in (i, i*2)]

如果是其他展开规则(比如重复每个元素3次),同样可以套用这个思路:

x = ["a", "b", "c"]
y = [i for i in x for _ in range(3)]  # 输出 ["a","a","a","b","b","b","c","c","c"]

如果处理的是大数据量,还可以用生成器表达式进一步节省内存(把方括号换成圆括号):

y = (val for i in x for val in (i, i*2))

这种写法完全满足你“一行定义x,一行定义y”的需求,而且比先建二维数组再扁平化的方式更高效、更简洁。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:04:27