examples - python for loop index
Saltarse todos los demás elementos después de la primera (7)
Hay más formas que una de desollar a un gato. - Seba Smith
arr = list(range(10)) # Range from 0-9
# List comprehension: Range with conditional
print [arr[index] for index in range(len(arr)) if index % 2 == 0]
# List comprehension: Range with step
print [arr[index] for index in range(0, len(arr), 2)]
# List comprehension: Enumerate with conditional
print [item for index, item in enumerate(arr) if index % 2 == 0]
# List filter: Index in range
print filter(lambda index: index % 2 == 0, range(len(arr)))
# Extended slice
print arr[::2]
Tengo la idea general de cómo hacer esto en Java, pero estoy aprendiendo Python y no estoy seguro de cómo hacerlo.
Necesito implementar una función que devuelva una lista que contenga todos los demás elementos de la lista, empezando por el primer elemento.
Hasta ahora, tengo y no estoy seguro de cómo hacerlo desde que estoy recién aprendiendo cómo los for-loops en Python son diferentes:
def altElement(a):
b = []
for i in a:
b.append(a)
print b
Alternativamente, podrías hacer:
for i in range(0, len(a), 2):
#do something
Sin embargo, la notación de división extendida es mucho más concisa.
Notación de a[start_index:end_index:step]
return a[::2]
donde start_index
defecto en 0
y end_index
predetermina en len(a)
.
Usando el for-loop como lo has hecho, una forma es esta:
def altElement(a):
b = []
j = False
for i in a:
j = not j
if j:
b.append(i)
print b
j solo cambia entre 0 y 1 para realizar un seguimiento de cuándo agregar un elemento a b.
b = a[::2]
Esto usa la sintaxis de segmento extendido .
def altElement(a):
return a[::2]
items = range(10)
print items
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print items[1::2] # every other item after the second; slight variation
>>> [1, 3, 5, 7, 9]
]