我有一个程序,它计算回答一个特定问题所需的时间,当回答不正确时退出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))
list.pop()
删除并返回列表的最后一个元素。你应该用这个
问题在于
每次删除一个项目时它都会复制一个列表,所以效率不高
如果我正确理解了问题,您可以使用切片符号保留除最后一项之外的所有内容:
但更好的方法是直接删除该项:
注意1:注意使用record=record[:-1]并不会真正删除最后一个元素,而是将子列表分配给record。如果您在函数内部运行它,而record是一个参数,那么这就有区别了。当record=record[:-1]时,原始列表(函数外部)保持不变,而当del record[-1]或record.pop()时,列表将更改。(如@pltrdy在评论中所述)
注意2:代码可以使用一些Python习惯用法。我强烈建议您阅读以下内容:
Code Like a Pythonista: Idiomatic Python(通过回程机器存档)。
相关问题 更多 >
编程相关推荐