python - Python:如何生成一个序列,每个 m 个数字跳过 n 个数字
问题描述
我目前正在学习 Python,我已经看到使用list(range(start,stop,step))
我们可以创建一个从start
到的数字序列,在连续数字之间stop-1
具有某个特定值。step
但我不知道是否有办法实现一系列数字,但跳过n
每个m
数字。
例如,如果我们有下一个数字列表:
list(range(0,20))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
如果我们想跳过n=2
每个m=3
数字的数字,那么结果将是:
[0, 1, 2, 5, 6, 7, 10, 11, 12, 15, 16, 17]
或者,如果我们想跳过n=3
每个m=5
数字的数字,那么结果将是:
[0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 16, 17, 18, 19]
我有办法吗?提前致谢!
解决方案
这是一个单行,每 m 个数字跳过 n 个:
result = [j for i in range(0,20, n+m) for j in range(i, m+i)]
推荐阅读
- javascript - 在 Angular 组件中创建时如何将自定义构造函数参数设置为 Angular 服务?
- kubernetes - 使用环境变量引用命名空间
- java - 访问 JpaRepository 的 @Aspect 中的 EntityManager
- applescript - Applescript 将显示切换到灰度模式
- excel - vba 将红色行复制到新工作表
- java - 如何在编译时强制执行样式规则和约定?
- php - 如何从 review.php 获取客户评论标题到插件文件?
- r - 从数据框 R 中提取行
- c++ - 为什么结构需要友元函数?
- r - 为 openmp 激活 R 多核