我有这个程序可以计算回答特定问题所需的时间,并在答案不正确时退出 while 循环,但我想删除最后一个计算,所以我可以调用 min()
这不是错误的时间,如果这令人困惑,请见谅。
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))
最佳答案
如果我正确理解了这个问题,您可以使用切片符号来保留除最后一项之外的所有内容:
record = record[:-1]
但更好的方法是直接删除该项:
del record[-1]
注意 1:注意使用 record = record[:-1] 并没有真正删除最后一个元素,而是将子列表分配给记录。如果您在函数中运行它并且记录是一个参数,这会有所不同。使用 record = record[:-1] 原始列表(函数外部)未更改,使用 del record[-1] 或 record.pop() 更改列表。 (正如@pltrdy 在评论中所说)
注意 2:代码可以使用一些 Python 习语。我强烈推荐阅读这篇文章:
Code Like a Pythonista: Idiomatic Python (通过回程机存档)。
关于python - 如何删除列表中的最后一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169965/