puisque vous faites for element in aList
, element % 2 == 1
vérifiera si chaque élément est impair , pas si son index est impair.
Ce que vous pouvez faire est la suivante:
value = 0
for index in range(len(aList)):
if index % 2 == 1:
value += aList[value]
Cela passe par tous les indices , et si elle est ajoute étrange, l'élément à cet indice à l'accumulateur.
Cette méthode est assez facile à comprendre; cependant, il passe par un nombre inutile d'éléments:
value = 0
for index in range(1, len(aList), 2):
value += aList[index]
range(x, y, z)
génère tous les éléments de comptage de x
jusqu'à l'exclusion des y
, en comptant par z
. Cela commence à 1 et prend tous les 2 éléments.
C'est assez long cependant, et peut être raccourci à ce qui suit:
value = sum(aList[index] for index in range(1, len(aList), 2))
En utilisant le découpage de la liste, où aList[start:end:jump]
donne tous les jump
-ième élément à partir de start
jusqu'à end
(implicitement la fin), vous pouvez effectuer les opérations suivantes:
value = sum(aList[1::2])
Ceci totalise tous les deux éléments en commençant par le premier.
Si votre entrée est pas nécessairement indexable (qui est, il est itérable, mais ne peut pas utiliser [index]
la syntaxe, comme un ensemble, plage, carte, etc.), vous pouvez le faire:
value = sum(val for index, val in enumerate(anIter) if index % 2 == 1)
Cela résume toutes les valeurs où l'index est impair en obtenant l'index et la valeur pour chaque valeur énumérée. La fonction enumerate
est une itérable qui renvoie (0, a[0]), (1, a[1]), ..., (len(a) - 1, a[-1])
.
Bienvenue à SO. Malheureusement, ce n'est pas un groupe d'étude, un forum de discussion ou un service de rédaction de code. S'il vous plaît, prenez le temps de lire [ask] et les liens qui y sont référencés. – wwii
Lorsque vous envoyez du code ou des données, merci de nous contacter - https://stackoverflow.com/editing-help#comment-formatting – wwii
Qui a voté en faveur de la fermeture parce que c'est trop large? Ce vote peut être mal placé.Il y a quelques façons de le faire, vrai - cependant, la manière la plus pythonienne utilise la fonction 'sum' intégrée, ainsi qu'un générateur en tandem avec' enumerate'. – jrd1