


How Can I Identify Consecutive Number Groups in a Python List?
Dec 30, 2024 am 01:52 AMIdentify Consecutive Number Groups in a List
Identifying groups of consecutive numbers in a list is a common task that arises in various programming scenarios.
Python's Built-in Tools
Fortunately, Python's built-in functions and modules provide elegant solutions for this problem. One approach leverages the groupby() function and the lambda expression:
from itertools import groupby data = [2, 3, 4, 5, 12, 13, 14, 15, 16, 17] for k, g in groupby(enumerate(data), lambda (i, x): i - x): print(map(itemgetter(1), g))
This snippet groups consecutive numbers based on the difference between their index and value, ensuring that elements within each group are consecutive.
If the desired output is a list of tuples representing the range of consecutive numbers, the following modification can be made:
ranges = [] for k, g in groupby(enumerate(data), lambda (i, x): i - x): group = map(itemgetter(1), g) ranges.append((group[0], group[-1]))
Alternate Approach
Alternatively, a custom solution can be implemented using a loop and a list comprehension:
ranges = [] for i in range(len(data)): if i == len(data) - 1 or data[i] + 1 != data[i + 1]: ranges.append((data[i], data[i])) else: start = i while i + 1 < len(data) and data[i] + 1 == data[i + 1]: i += 1 ranges.append((data[start], data[i]))
This approach iterates through the list, identifying the starting and ending indices of each consecutive group and appending them to the ranges list.
The above is the detailed content of How Can I Identify Consecutive Number Groups in a Python List?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to Use Python to Find the Zipf Distribution of a Text File

How Do I Use Beautiful Soup to Parse HTML?

How to Perform Deep Learning with TensorFlow or PyTorch?

Introduction to Parallel and Concurrent Programming in Python

Serialization and Deserialization of Python Objects: Part 1

Mathematical Modules in Python: Statistics

How to Implement Your Own Data Structure in Python
