小编典典

如何删除列表中的最后一项?

all

我有这个程序可以计算回答特定问题所需的时间,并在答案不正确时退出 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))

阅读 121

收藏
2022-06-06

共1个答案

小编典典

如果我正确理解了这个问题,您可以使用切片符号来保留除最后一项之外的所有内容:

record = record[:-1]

但更好的方法是直接删除该项目:

del record[-1]

注意1:注意使用record =
record[:-1]并没有真正删除最后一个元素,而是将子列表分配给record。如果您在函数中运行它并且记录是一个参数,这会有所不同。使用 record
= record[:-1] 原始列表(函数外部)未更改,使用 del record[-1] 或 record.pop() 更改列表。(如@pltrdy
在评论中所述)

注 2:代码可以使用一些 Python 习语。我强烈推荐阅读这篇文章:
Code Like a Pythonista: Idiomatic
Python

(via wayback machine archive)。

2022-06-06