J'ai une liste de numéros:Comment puis-je trouver une valeur relative à l'endroit où se trouve une liste dans ma liste en Python?
Data = [0,2,0,1,2,1,0,2,0,2,0,1,2,0,2,1,1,...]
et moi avons une liste de tuples de deux, ce qui est toutes les combinaisons possibles des numéros individuels ci-dessus:
Combinations = [(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
Je veux essayer de trouver où chaque élément dans Combinations apparaît dans Data et ajoute la valeur après chaque occurrence à une autre liste.
Par exemple, pour (0,2) je veux faire une liste [0,0,0,1] car ce sont les valeurs qui tombent immédiatement après (0,2) dans Data.
Jusqu'à présent, j'ai:
any(Data[i:i+len(CurrentTuple)] == CurrentTuple for i in xrange(len(Data)-len(CurrentTuple)+1))
Où CurrentTuple
est Combinations.pop()
. Le problème est que cela me donne seulement un booléen de savoir si le CurrentTuple
se produit dans les données. Ce dont j'ai vraiment besoin, c'est la valeur après chaque occurrence dans Data.
Est-ce que quelqu'un a des idées sur la façon dont cela peut être résolu? Merci!
Si vous avez besoin de quelque chose de plus rapide (j'imagine que si vous travaillez avec markov-chain c'est le cas) vérifiez aussi ma réponse ci-dessous ... Éviter 'append' rend la génération de liste beaucoup plus rapide. –