-1
votes

Comment puis-je soustraire avec succès les valeurs des éléments INT dans une liste jusqu'à la fin de ma liste?

Alors, ce que j'essaie globalement d'accomplir est de déplacer une liste contenant de multiples éléments INT successivement par une variable qui contient une quantité inconnue d'INTS.

exemple: LISTE = [11,2 107 103,97]

clé = '18'

Si nous soustrayons la liste mise à jour, il faut ressembler à ceci: UpdatedList = [10, -6, 106, 95, 96]

Dans toutes les boucles pour les boucles que j'ai essayées, mes erreurs sont consistées à des INTS ne sont pas iables. Lorsque j'ai essayé de le savoir comme une chaîne ou une liste pour une raison quelconque, un seul élément a été ramassé. Je pourrais même spécifier quel élément par la liste de la liste, mais c'était toujours un.


0 commentaires

3 Réponses :


2
votes

Est-ce ce que vous voulez:

a = [11,2,107,103,97]
key = '18'
b = [i-int(key[I%len(key)]) for I,i in enumerate(a)]


2 commentaires

Merci beaucoup! cela fonctionne parfaitement. Pourriez-vous me dire si je le comprends correctement? Donc, mon élément - [l'élément de ma clé à cet indice] le faire pour chaque élément de mon énuméré (A)? Désolé je suis nouveau mais j'aimerais vraiment comprendre.


Énumérer rendements à la fois l'index (i) et l'élément (i) de la liste A. Tout ce que je fais ici, vous travaillez à travers un moment de cyclisme à travers les éléments de la clé (en utilisant i% len (clé)). Si len (a) = 5 et len ​​(clé) = 3, [i% len (clé) pour i dans la plage (len (a))] = [0,1,2,0,1].



2
votes
my_list = [11,2,107,103,97]
key = '18'
updated_list = [my_list[i]-int(key[i % len(key)]) for i in range(len(my_list))]

0 commentaires

0
votes

Il existe un moyen naturel de parcourir la clé, à l'aide de itertools.cycle code> . Nous utiliserons carte (int, touche) code> pour convertir les chiffres de la touche code> en entiers pouvant être soustraits.

>>> nums = [11, 2, 107, 103, 97]
>>> key = '18'
>>> from itertools import cycle
>>> [ x - k for x, k in zip(nums, cycle(map(int, key))) ]
[10, -6, 106, 95, 96]


0 commentaires