有没有更有效的方法?

2024-04-25 07:55:21 发布

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

我有一个名为“运行”的列表。我正在使用代码的这一部分创建这些列表的平均值:

ave = [0 for t in range(s)]
for t in range(s):
    z = 0
    for i in range(l):
        z = z + run[i][t]
        #Converted values to a string for output purposes
        # Added \n to output
        ave[t]= ((str(z / l) + "\n"))

令我大吃一惊的是,这段代码在我第一次编写时就起作用了。我现在计划使用更大的列表和更多的值,性能问题可能会发挥作用。这种编写方法在计算资源的使用上是否是一种平均效率低下的方法,我如何才能编写更高效的代码?在


Tags: to方法run代码in列表foroutput
3条回答

通过使用高效的内置函数和列表理解,可以让Python为您完成更多的工作,从而提高效率:

averages = [sum(items) / len(run) for items in zip(*run)]
import numpy as np
ave = [np.avg(col) for col in zip(*run)]

或者

^{pr2}$

列表理解可能更有效。在

>>> run = [[1, 2, 3, 4, 5], [6, 7, 8, 9], [10, 11, 12, 13]]
>>> [sum(elem)/len(elem) for elem in zip(*run)]  
[5.666666666666667, 6.666666666666667, 7.666666666666667, 8.666666666666666]

或者,您可以尝试map()

^{pr2}$

相关问题 更多 >