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

Python如何使用带多个if语句的列表推导式生成指定重复序列

实现方法

你不需要在列表推导式里堆砌多个if分支。你原有写法的问题是仅做了一次条件判断,且计数变量d全程没有更新,所有i≥7的位置都会固定返回2,哪怕硬写15个if分支也是冗余的低效实现,有两种极简写法可以直接生成目标序列:

  • 索引计算法:利用整数除法匹配每段重复值,06索引整除7得0,加1对应数值1;713索引整除7得1,加1对应数值2,以此类推刚好覆盖1~15所有数
position = [i // 7 + 1 for i in range(105)]
  • 嵌套循环推导法:逻辑更直观,外层遍历1到15的整数,每个数重复生成7次,不需要手动计算总长度,15*7自然得到105个元素
position = [num for num in range(1, 16) for _ in range(7)]

两种写法运行后得到的序列和你给出的目标Position完全一致,不需要额外定义计数变量,也不需要写多层条件判断。

内容的提问来源于stack exchange,提问作者A.E

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:57:25