Soustraire une valeur de chaque nombre dans une liste en Python?
Je suis encore à la lecture de l'Python 3.1.3 tutoriel et rencontré le problème suivant:
Comment supprimer une valeur à partir d'un groupe de numéros?
# A list with a group of values a = [49, 51, 53, 56]
Comment puis-je soustraire 13 de chaque valeur entière dans la liste?
# Attempting to minus 13 from this list - FAIL!
(a[:] = a[:] - 13)
Vous devez vous connecter pour publier un commentaire.
Avec une compréhension de liste.
def minus13(a):
sur la ligne ci-dessus et la mise en retrait d'un niveau.a[:]
sur la gauche au lieu de simplement l'attribution de retour àa
? Ne pasa[:]
créer une copie de la liste?a
de gauche.[49, 51, 53, 56]
.minus13()
est une fonction que vous définissez dans votre code, qui renvoie le résultat de la compréhension de liste. Le reste, c'est la création de la liste et l'invocation de la fonction qui se produit ailleurs dans votre code.a = [x - 13 for x in a]
fonctionnera tout aussi bien, et est moins déroutant.Si vous travaillez avec des chiffres beaucoup, vous voudrez peut-être jeter un oeil à NumPy. Il vous permet d'effectuer toutes sortes d'opération directement sur les tableaux numériques. Par exemple:
Vous pouvez utiliser map() fonction:
Cela fonctionne:
i
) pour itérer sur tous les possibles valeurs de l'indice. Cet indice variable est nécessaire pour muter chaque élément de la liste.for i in a[:]
,i
prendra les valeurs des éléments dea
, de sorte que vous serez en train de faire:a[49]
,a[51]
, etc...