Tengo este programa que calcula el tiempo necesario para responder una pregunta específica y se cierra del ciclo while cuando la respuesta es incorrecta, pero quiero eliminar el último cálculo, por lo que puedo llamar min()
y no es el momento equivocado, lo siento si esto es confuso.
from time import time
q = input('What do you want to type? ')
a = ' '
record = []
while a != '':
start = time()
a = input('Type: ')
end = time()
v = end-start
record.append(v)
if a == q:
print('Time taken to type name: {:.2f}'.format(v))
else:
break
for i in record:
print('{:.2f} seconds.'.format(i))
fuente
deberías usar esto
El problema con
Es que hace una copia de la lista cada vez que elimina un elemento, por lo que no es muy eficiente
fuente
list.pop()
elimina y devuelve el último elemento de la lista.fuente
Necesitas:
antes del
for
bucle.Esto se establecerá
record
en larecord
lista actual pero sin el último elemento. Es posible que, según sus necesidades, desee asegurarse de que la lista no esté vacía antes de hacer esto.fuente
record.pop()
? (Nota: soy muy nuevo en python)pop
pero no es realmente necesario si sólo quiere tirar el elemento de distancia.Si haces mucho con el tiempo, puedo recomendar este pequeño administrador de contexto (20 líneas):
Su código podría verse así entonces:
Solo como referencia, aquí está el contenido del administrador de contexto Timer completo:
fuente
simplemente use
list.pop()
ahora si lo desea de otra manera use:list.popleft()
fuente
Si tiene una lista de listas ( tracked_output_sheet en mi caso), donde desea eliminar el último elemento de cada lista, puede usar el siguiente código:
fuente