首页 > 解决方案 > 根据用户定义的规则拆分数组

问题描述

我是 Python 新手,我在如何根据用户定义的规则拆分数组方面非常挣扎。假设我有一个包含元素的数组:

A=[0,1,2,6,7,8,9,14,15,16]

我想用python把上面的数组分成几组。所以如果当前元素和下一个元素之间的间隔小于2,那么它们属于一个组,否则属于不同的组。

所以基本上我希望我的新数组看起来像这样:

B = [[0,1,2] [6,7,8,9] [14,15,16]]

我正在考虑使用 for 循环并循环遍历数组 A,但不太确定该怎么做......

标签: pythonarraysfor-loop

解决方案


一个基本的 for 循环工作

a=[0,1,2,6,7,8,9,14,15,16]

g = []
tmp = [] 
for i in range(len(a)):
   tmp.append(a[i])
   if i==len(a)-1 or a[i+1] - a[i] >= 2:
      g.append(tmp)
      tmp = []

print(g)

输出

[[0, 1, 2], [6, 7, 8, 9], [14, 15, 16]]

推荐阅读