J'écris une fonction contenant une liste de chiffres et je dois trouver un moyen de compter les occurrences des numéros 1 et 2, uniquement pour les 3 dernières valeurs de la liste. P>
Je connais évidemment la fonction tl; DR: strong> Qu'est-ce qu'un moyen de compter des occurrences de valeurs dans une liste entre index donnés. P> .Count () code>, mais je me demande s'il y a un moyen d'utiliser seulement entre un indice donné, dans ce cas, l'index serait ( (len (historique-3), (len (historique)) code>, historique code> étant une liste contenant uniquement des valeurs 1 code> et 2 code> 2 code> . p>
3 Réponses :
Utilisez la tranchée négative pour obtenir les valeurs code> N CODE> N Comptez-le à l'aide de Compter () CODE>. lst[-3:].count(2) # counts number of 2 from last three elements of list lst.
lst[-3:].count(1) # counts number of 1 from last three elements of list lst.
Vous pouvez trancher la liste, puis compter et vous pouvez faire exactement la même chose avec les indices indiqués ici p> J'espère que cela est d'une utilisation. P> p>
Comme Rocky Li suggère que vous puissiez obtenir les trois derniers éléments d'une liste en l'appliquant Par exemple: p > Historique [-3:] code>. Vous pouvez ensuite utiliser la fonction de comptage sur la tranche pour obtenir le nombre de 1 code> et 2 code> dans les trois derniers points de la liste. >>> history = [1, 2, 1, 2, 1, 2, 1, 2, 1]
>>> count_1 = history[-3:].count(1)
>>> count_2 = history[-3:].count(2)
>>> count_1
2
>>> count_2
1
Liste [-3:] code> vous donnera les 3 derniers éléments de la listecode>