How to delete last item in list?

后端 未结 7 695
再見小時候
再見小時候 2021-01-30 06:08

I have this program that calculates the time taken to answer a specific question, and quits out of the while loop when answer is incorrect, but i want to delete the last calcula

7条回答
  •  故里飘歌
    2021-01-30 06:24

    If you do a lot with timing, I can recommend this little (20 line) context manager:

    • https://github.com/brouberol/timer-context-manager

    You code could look like this then:

    #!/usr/bin/env python
    # coding: utf-8
    
    from timer import Timer
    
    if __name__ == '__main__':
        a, record = None, []
        while not a == '':
            with Timer() as t: # everything in the block will be timed
                a = input('Type: ')
            record.append(t.elapsed_s)
        # drop the last item (makes a copy of the list):
        record = record[:-1] 
        # or just delete it:
        # del record[-1]
    

    Just for reference, here's the content of the Timer context manager in full:

    from timeit import default_timer
    
    class Timer(object):
        """ A timer as a context manager. """
    
        def __init__(self):
            self.timer = default_timer
            # measures wall clock time, not CPU time!
            # On Unix systems, it corresponds to time.time
            # On Windows systems, it corresponds to time.clock
    
        def __enter__(self):
            self.start = self.timer() # measure start time
            return self
    
        def __exit__(self, exc_type, exc_value, exc_traceback):
            self.end = self.timer() # measure end time
            self.elapsed_s = self.end - self.start # elapsed time, in seconds
            self.elapsed_ms = self.elapsed_s * 1000  # elapsed time, in milliseconds
    

提交回复
热议问题