Disons que j'ai une liste:
listOfStuff =([a,b], [c,d], [e,f], [f,g])
Ce que je veux faire, c'est parcourir les 2 composants du milieu d'une manière similaire au code suivant:
for item in listOfStuff(range(2,3))
print item
Le résultat final devrait être:
[c,d]
[e,f]
Ce code ne fonctionne pas actuellement, mais j'espère que vous pouvez comprendre ce que j'essaie de faire.
listOfStuff =([a,b], [c,d], [e,f], [f,g])
for item in listOfStuff[1:3]:
print item
Vous devez parcourir une tranche de votre tuple. Le 1
est le premier élément dont vous avez besoin et 3
(en fait 2 + 1) est le premier élément dont vous n'avez pas besoin.
Les éléments d'une liste sont numérotés de 0:
listOfStuff =([a,b], [c,d], [e,f], [f,g])
0 1 2 3
[1:3]
prend les éléments 1 et 2.
Une manière plus efficace en mémoire d'itérer sur une tranche d'une liste serait d'utiliser islice()
depuis le module itertools
:
from itertools import islice
listOfStuff = (['a','b'], ['c','d'], ['e','f'], ['g','h'])
for item in islice(listOfStuff, 1, 3):
print item
# ['c', 'd']
# ['e', 'f']
Cependant, cela peut être relativement inefficace en termes de performances si la valeur de début de la plage est une grande valeur car islice
devrait itérer sur les premiers éléments de valeur de démarrage-1 avant de renvoyer des éléments.
Vous souhaitez utiliser le découpage.
for item in listOfStuff[1:3]:
print item
En utilisant iter
builtin:
l = [1, 2, 3]
# i is the first item.
i = iter(l)
next(i)
for d in i:
print(d)