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 liste
code>