Identifier les nombres consécutifs dans une liste
La tâche consiste à diviser une liste en groupes de nombres consécutifs. Chaque groupe ne doit comprendre que des nombres consécutifs. La sortie doit conserver des nombres individuels et ne pas les combiner en plages.
Solution :
En Python, vous pouvez utiliser la fonction groupby intégrée avec une clé personnalisée atteindre ceci :
from itertools import groupby from operator import itemgetter ranges = [] for key, group in groupby(enumerate(data), lambda (index, item): index - item): group = map(itemgetter(1), group) if len(group) > 1: ranges.append(xrange(group[0], group[-1])) else: ranges.append(group[0])
Explication :
Exemple de sortie :
data = [2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20] ranges = [xrange(2, 5), xrange(12, 17), 20]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!