Python:如何生成一个序列,每个 m 个数字跳过 n 个数字

标签 python range sequence

我目前正在学习 Python,我已经看到使用 list(range(start,stop,step)) 我们可以创建一个从 startstop-1 在连续数字之间有一定的 step

但我不知道是否有办法实现数字序列,但每个 m 个数字跳过 n 个。

例如,如果我们有下一个数字列表:

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)]

关于Python:如何生成一个序列,每个 m 个数字跳过 n 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65693699/

相关文章:

SQL:从 "nothing"中选择一个数字列表

python - 从脚本获取与从 python shell 获取不同的电影信息

python - Celerybeat执行任务

python - 类型推断 : df. append() 与 df.loc[]

python - 如何从列表中收集范围?

couchdb - CouchDB 是否支持多范围查询?

javascript - 有没有办法在 Chrome 和/或 IE 中使用 JS 选择多个文本区域?

r - 检查 R 中的向量是否是顺序的?

python - 我的 socket 和 pickle 有问题。值​不保存到 txt 中

c# - C# 中的斐波那契数列