如何使函数在Python中花费更长的时间?

2024-04-26 12:18:52 发布

您现在位置:Python中文网/ 问答频道 /正文

对于教授的作业,他给我们的代码运行良好,但希望我们“降级”,以便在两个特定函数上花费更长的时间。我们正在使用一个给定的数组:

array = ["apples", "bananas", "cucumbers", "dates", "elderberries"]

以及教授给出的四个函数。他想花更长时间的两个函数是插入和删除函数

def insertArray():
    print("Inserting figs into array at index 2")
    print(array)
    start = timer()
    array.insert(2,"figs")
    end = timer()
    print(array)
    print("Insert elapsed time = {0:.8f}".format(end - start))


def deleteArray():
    print("Deleting bananas at index 1 from array")
    print(array)
    start = timer()
    array.pop("bananas")
    end = timer()
    print(array)
    print("Delete elapsed time = {0:.8f}".format(end - start))

我知道需要更换array.insert和array.pop,但我不知道我可以用什么过程或方法来实现相同的结果,但要花更长的时间。有人对我能做什么有建议吗


Tags: 函数indexdef时间arraystartatend
2条回答

可以使用time.sleep()将函数延迟指定的秒数

import time

def insertArray():
    time.sleep(10)
    print("Inserting figs into array at index 2")
    print(array)
    start = timer()
    array.insert(2,"figs")
    end = timer()
    print(array)
    print("Insert elapsed time = {0:.8f}".format(end - start))


def deleteArray():
    time.sleep(10)
    print("Deleting bananas at index 1 from array")
    print(array)
    start = timer()
    array.pop()
    end = timer()
    print(array)
    print("Delete elapsed time = {0:.8f}".format(end - start))

(重新定义popinsert函数)

def pop(iterable, index=-1):
    a = iterable[index]
    del iterable[index]
    return a

def insert(iterable, index, item):
    iterable = iterable[index-1:] + item + iterable[:index-1]

在没有本机列表函数的情况下,也应该执行相同的操作。除了我使用了array.pop(1)而不是array.pop("bananas"),因为它没有任何意义

array = ["apples", "bananas", "cucumbers", "dates", "elderberries"]


def insertArray():
    print("Inserting figs into array at index 2")
    print(array)
    start = timer()
    array = array[:2] + ["figs"] + array[2:]
    end = timer()
    print(array)
    print("Insert elapsed time = {0:.8f}".format(end - start))


def deleteArray():
    print("Deleting bananas at index 1 from array")
    print(array)
    start = timer()
    array = array[:1] + array[2:]
    end = timer()
    print(array)
    print("Delete elapsed time = {0:.8f}".format(end - start))

相关问题 更多 >