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

标签 python time python-3.x

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

相关文章:

python - 你可以在追加模式下使用pickle吗

python 在特定字符后的空格上拆分字符串

python - 碎片 : preventive measures before running the scrape

python - 使用 gdata Python api 获取电子表格的修订

javascript - 找到最接近给定时间数组的时间

c - setrlimit 不可靠?

python - 路易吉流水线 : No module named pwd in Windows

python - 如何将 int 列表转换为元组列表

java - 新的 SimpleDateFormat ("hh:mm a", Locale.getDefault()).parse ("04:30 PM")给出 Unparseable 异常

python-3.x - 基于多列合并行并连接多列