Home > Software engineering >  Count sets of increasing trend in a list
Count sets of increasing trend in a list

Time:09-02

I have to count the number of subsets where there is an increasing trend based on user input of the list and the length of the subset.

List:[1,2,3,4,5,6,7,8,9]

k: The length of the trend.

for example...if k=3 and the data points increase for three consecutive numbers, then it is counted as one.

Here the input is the list and the length of the list and k

Example:

Input: List:{1,2,3,4,5,6}

 k=3

Output: 4. {(1,2,3),(2,3,4),(3,4,5),(4,5,6)}

CodePudding user response:

You can use the following :

def group_by_trend(data, k):
    return [data[i*k :min((i 1)*k, len(data))] 
            for i in range(round((len(data) 1)/k))]

# test
k = 3
List = [1,2,3,4,5,6,7,8,9]

print(group_by_trend(List, k))

output:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • Related