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. P>
exemple: LISTE = [11,2 107 103,97] P>
clé = '18' p>
Si nous soustrayons la liste mise à jour, il faut ressembler à ceci: UpdatedList = [10, -6, 106, 95, 96] P>
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. p>
3 Réponses :
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)]
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].
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))]
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]