gpt4 book ai didi

python 将数组拆分为运行/序列 - 最好是 numpy

转载 作者:行者123 更新时间:2023-12-01 03:54:09 24 4
gpt4 key购买 nike

如果运行不超过 3,我如何将其拆分为序列/运行/后续数字?

有一个数组如下

[1, 2, 3, 5, 9, 10, 16, 17, 18, 19]

我的预期输出将是以下数组:

  1. [1,2,3]
  2. [5]
  3. [9, 10]
  4. [16,17,18]
  5. [19]

例如[[1,2,3],[5],[9,10],[16,17,18],[19]]

如果是长度为 8 的游程,例如[1, 2, 3, 4, 5, 6, 7, 8] 我想获得 8/3 + 1 = 2 列表:

  1. [1,2,3]
  2. [4,5,6]
  3. [7, 8]

最佳答案

如果您将当前列表命名为 x 并将新的输出列表命名为 new_list,您可以尝试(未经测试并假设原始列表中没有重复值)

k = 0
new_list = [[]]
for i in range(len(x) - 1):
if x[i] not in new_list[max(k - 1, 0)]:
new_list[k].append(x[i])
for j in range(i + 1, len(x)):
if x[j] - x[i] == j - i and x[j] not in new_list[k]:
new_list[k].append(x[j])
k += 1
new_list.append([])

new_list = [x for x in new_list if x != []] # gets rid of empty list at the end

关于python 将数组拆分为运行/序列 - 最好是 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37791945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com