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

Python3仅用列表生成器实现字符串按尾序次数重复生成列表的问询

# 一行列表生成器实现需求,无任何生成器外的额外代码
res = [char * (len(s) - idx) for s in [input()] for idx, char in enumerate(s)]
问题1:列表生成器内部绑定input返回值的方法

不需要借助生成器外的变量,你可以利用列表生成器的多层for逻辑实现临时变量绑定:将input()的返回值封装为单元素可迭代对象(比如[input()]),第一层for仅迭代1次,即可将输入的字符串赋值给临时变量s,全程仅调用1次input(),所有逻辑都在生成器内部完成。
你之前的写法问题在于两次调用了input(),计算长度和后续取值的输入是两次独立输入,不符合需求。

问题2:适配需求的列表生成器循环逻辑

需求对应的循环逻辑可以拆解为两层:

  • 外层:单次迭代绑定输入字符串到临时变量s
  • 内层:遍历s的每个字符和正向索引,通过len(s) - 正向索引计算得到「从末尾开始计数的序号」,将字符重复对应次数即可得到目标子串
    该结构完全符合列表生成器的通用语法,两层for子句是列表生成器的标准嵌套语法,等效于你之前写的普通循环逻辑。

测试验证:输入abcd时,运行上述代码的输出为['aaaa', 'bbb', 'cc', 'd'],和示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:15:02