Il doit y avoir une façon plus simple et plus pythonique de le faire.Python: recherche de changement séquentiel dans un membre de paires de listes, signalez autre
Compte tenu de cette liste de paires:
pp = [('a',1),('b',1),('c',1),('d',2),('e',2)]
Comment puis-je trouver plus facilement le premier élément de paires adjacentes où le deuxième élément change (ici, de 1 à 2). Donc je cherche ['c', 'd']. Supposons qu'il n'y aura qu'un seul changement dans la paire [1] pour la liste entière, mais qu'il peut s'agir d'une chaîne.
Ce code fonctionne mais semble atrocement long et encombrant.
for i, pair in enumerate(pp):
if i == 0:
pInitial = pair[0]
sgInitial = pair[1]
pNext = pair[0]
sgNext = pair[1]
if sgInitial == sgNext:
sgInitial = sgNext
pInitial = pNext
else:
pOne = pInitial
pTwo = pNext
x = [pOne, pTwo]
print x
break
Merci Tim
J'aime la façon dont vous traitez la liste comme deux listes, la seconde commençant simplement au deuxième tuple. Merci! – Tim
Découvrez également ma réponse sur d'autres threads: http://stackoverflow.com/questions/3460161/remove-adjacent-duplicate-elements-from-a-list/3463143#3463143 Voir la similarité? –