Eu tenho este programa que calcula o tempo necessário para responder a uma pergunta específica e sai do loop while quando a resposta está incorreta, mas eu quero excluir o último cálculo, para que eu possa ligar min()
e não seja a hora errada, desculpe se isso é 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))
fonte
você deveria usar isso
O problema com
É que ele faz uma cópia da lista toda vez que você remove um item, por isso não é muito eficiente
fonte
list.pop()
remove e retorna o último elemento da lista.fonte
Você precisa:
antes do
for
loop.Isso será definido
record
narecord
lista atual, mas sem o último item. Dependendo das suas necessidades, você pode garantir que a lista não esteja vazia antes de fazer isso.fonte
record.pop()
? (NB: Eu sou muito novo para python)pop
mas não é realmente necessário se você quiser apenas jogar o item fora.Se você faz muito com o tempo, posso recomendar este pequeno gerenciador de contexto (20 linhas):
Seu código pode ficar assim:
Apenas para referência, aqui está o conteúdo do gerenciador de contexto do Timer na íntegra:
fonte
simplesmente use
list.pop()
agora se você quiser do outro modo:list.popleft()
fonte
Se você tiver uma lista de listas ( tracked_output_sheet no meu caso), onde deseja excluir o último elemento de cada lista, poderá usar o seguinte código:
fonte